精確長度我有一個驗證輸入的值的兩個正則表達式。如何檢測在正則表達式
一個允許字母數字值的任何時間長度:
@"^\s*(?<ALPHA>[A-Z0-9]+)\s*"
而且只有對方允許數值:
@"^\s*(?<NUM>[0-9]{10})"
我怎樣才能獲得的11長度的數字串不被NUM
正則表達式捕獲。
精確長度我有一個驗證輸入的值的兩個正則表達式。如何檢測在正則表達式
一個允許字母數字值的任何時間長度:
@"^\s*(?<ALPHA>[A-Z0-9]+)\s*"
而且只有對方允許數值:
@"^\s*(?<NUM>[0-9]{10})"
我怎樣才能獲得的11長度的數字串不被NUM
正則表達式捕獲。
我想你想說的是,你不想超過10位數字。因此,只需在末尾添加$
即可指定正則表達式的結尾。
例子:@"^\s*(?[0-9]{10})$"
這是我原來的答案,但我覺得我讀你太準確。
string myRegexString = `@"(?!(^\d{11}$)` ... your regex here ...)";
,上面寫着「而未來是不是開始,11位,結束」
匹配東西長10串後非數字。我的正則表達式不是很好,但我認爲你已經在那裏設置了一個長度爲10的數字字符串,但是因爲在此之後你不匹配任何東西,所以長度爲11的字符串也會匹配。嘗試匹配超過數字的結尾,你會很好。
你可以嘗試交替?
^\s*(?\d{1,10}|\d{12,})
如果它是單行線,你可以指定你的對手必須在該行的末尾發生,像這樣。網...
^\s*([0-9]{10})\z
將接受1234567890但拒絕12345678901.
這應該和之前的數字後僅匹配10位數字,並允許空格的任意數字。
非捕獲版本:(只匹配,匹配的數字不存儲)
^\s*(?:\d{10})\s*$
捕捉版本:(匹配的數字是在分組1可用,$ 1或\ 1)
^\s*(\d{10})\s*$
如果你正在嘗試只匹配是10個位數號碼,只需添加使用$拖錨,像這樣:
^\s*(?:[0-9]{10})\s*$
這將匹配任何長度正好爲10位數的數字(每邊都有可選空間)。
你的意思是你想匹配高達 10位?試試這個:
@"^\s*[0-9]{1,10}\s*$"
var pattern =/\b[0-9]{10}$\b/;
// the b modifier is used for boundary and $ is used for exact length
感謝,這就是我一直在尋找... – CheGueVerra 2009-04-27 15:52:21