我在正則表達式一個小白,我試圖寫出具有最少6和最多9個總字符,其中前3個字符是字母一個正則表達式模式(不區分大小寫,α-只有),其餘的都是數字。正則表達式準確的重複不工作
我有以下模式:^\w{3}\d{3,6}$
但由於某些原因,當我輸入下面的這個模式返回true:aa12345
或Ap4587
等。我需要前3個字符只是字母(確切)。
我希望有人能夠幫助我在此。
謝謝!
我在正則表達式一個小白,我試圖寫出具有最少6和最多9個總字符,其中前3個字符是字母一個正則表達式模式(不區分大小寫,α-只有),其餘的都是數字。正則表達式準確的重複不工作
我有以下模式:^\w{3}\d{3,6}$
但由於某些原因,當我輸入下面的這個模式返回true:aa12345
或Ap4587
等。我需要前3個字符只是字母(確切)。
我希望有人能夠幫助我在此。
謝謝!
\w
相當於[a-zA-Z0-9_]
。你應該正則表達式更改爲:
^[a-zA-Z]{3}\d{3,6}$
呃...'\ w'不是*完全相當於'[a-zA-Z0-9_]'。這取決於引擎。在.NET,例如,'\ w'通常相當於'[\ p {的L1} \ p {路} \ p {LT} \ p {螺} \ p {釹} \ p {PC} \ p { LM}]'。如果你真的想匹配'\ w'減去數字和標點符號,我相信你會使用'[\ p {}的L1 \ p {魯} \ p {LT} \ p {羅} \ p {} Lm的] ' – JDB
@Cybȫʁgϟ37好吧,是的。我沒有考慮那裏的unicode角色。 –
使用[a-zA-Z]
只有字母。我更喜歡使用[0-9]
即使是相同\d
一致性
/^[a-zA-Z]{3}[0-9]{3,6}$/
\w
比賽a-z, A-Z, 0-9, _
,只能用於字母數字字符
謝謝,它工作!感謝您的幫助:D –
試試這個:
^[a-zA-Z]{3}\d{3,6}$
爲\w
比賽a-z, A-Z, 0-9
如果你想允許更廣泛Unicode值的範圍,我建議:
[\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Lm}]{3}
這將允許小寫,大寫,標題,「其他」和改性劑作爲前三個字符。
例如,[a-zA-Z]{3}
將排除由於特殊字符的單詞「簡歷」。上面的模式將允許它。
我建議你檢查出的正則表達式字符類的文檔:
Character Classes or Character Sets
MSDN文檔也非常好,大部分是用標準的正則表達式庫兼容:
'\ w'用於字母數字字符和'_' – JDB