2015-06-09 24 views
2

我是PHP正則表達式的新手。剛開始玩它。 我只想接受單詞(可以是2或3或4或5等),但只能接受單詞,沒有特殊字符,在這些單詞之間沒有數字。PHP正則表達式需要過濾單詞之間的其他字符

例如一個名字:「約翰·威廉斯·劉易斯」

如果一個名稱有類似「約翰·123·威廉姆斯 - $劉易斯」

正則表達式應該拒絕

我試着用作爲[\w\s]+,這個正則表達式能接受更多的單詞,但不理解如何過濾單詞之間的其他字符。

對不起,如果它是一個愚蠢的查詢。

+0

請詳細說明「特殊字符」。 「JöhnWíllìamŝLẽwiş」會不會好? –

回答

0
^[a-zA-Z][a-zA-Z ]*$ 

您可以嘗試this.Anchors ^$將確保你不要有部分匹配。

如果您想匹配由space分隔的名稱,則可以使用^[a-zA-Z]+(?: [a-zA-Z])*$

+0

只是一個疑問,爲什麼不能用作:[a-zA-Z] * $,在這裏:https://regex101.com/r/sV9sP8/1 – John

+1

@John匹配'empty strings'.If你用只是'^ [a-zA-Z] + $',那麼它將匹配只包含空格的字符串。' – vks

+0

明白了,非常感謝! :) – John

0

\w接受所有的單詞字符包括數字和字母,相反,如果您只想匹配字母,可以使用[a-zA-Z]。和接受的慾望的結果,你可以添加空格匹配\s你的性格類:

[a-zA-Z\s]+ 

您也可以使用否定的字符類拒絕比賽的例如某些字符以下的正則表達式匹配除了數字的任何東西:

[^\d]+ 
0

試試這個:

^[a-zA-Z][a-zA-Z\\s]+$ 

這將只接受字母(小或資本兩者),只有空間。

相關問題