2013-07-17 49 views
1

開頭我想寫一個以字母開頭的名稱的正則表達式,並且字符串中的數字也可以有空格。名稱的正則表達式應該以字母

當前我使用的是^(?=.*[a-zA-Z].*)([a-zA-Z0-9' ]{1,50})$

但它接受像「1125151asdgvhavdg」這樣的字符串。即它在開始時正在進行編號。

我的字符串應該是這樣的

ads564564545456 fdsf78

+0

輸入的任何例子,你接受? – Ehsan

+0

它可以是這樣的:a123ajdbhbd – user1926319

+0

你有什麼'。*'在你的lookahead斷言? – zerkms

回答

5

簡單:

^([a-zA-Z][a-zA-Z0-9' ]{0,49})$ 

你不需要這裏的任何斷言

+0

感謝它正在工作:) – user1926319

+1

@ user1926319如果它的工作,通過檢查後的tickmark接受答案! –

0

您可以使用以下代碼:

^([a-zA-Z\s][a-zA-Z0-9]{1,50})$

該正則表達式以字符開頭,並允許空格和數字。

0

你可以簡潔地表達出來是這樣的:

^(?i)[a-z][a-z\d ]{0,49})$ 
0

如果你不是100%肯定會有永遠只ASCII字母要匹配,那麼你應該在Unicode properties看看,例如信\p{L}

\p{L}來自任何語言的任何類型的信件。

Unicode scripts,收集某些語言所需的字母。

所以,你的正則表達式是這樣的:(通過九個數字零,除了表意文字任何腳本)

^\p{L}[\p{L}\p{Nd}' ]{0,49}$ 

我也0-9換成由酒店\p{Nd}