我是PHP正则表达式的新手。我就开始玩了。我想只接受单词(它可以是2或3或4或5等),但应该只接受单词,没有特殊字符,这些单词之间没有数字。
例如a Name: "John williams lewis"
Regex应该拒绝包含类似"John 123 williams -$ Lewis"的名字
我尝试使用作为['w's]+
,这个正则表达式能够接受更多的单词,但不理解如何过滤单词之间的其他字符。
我很抱歉,如果这是一个愚蠢的查询。
^[a-zA-Z][a-zA-Z ]*$
你可以试试这个。锚^$
将确保您没有部分匹配。
如果您想匹配以space
分隔的名称,可以使用^[a-zA-Z]+(?: [a-zA-Z])*$
'w
接受所有单词字符,包括数字和字母,如果您只想匹配字母,则可以使用[a-zA-Z]
。为了接受期望的结果,您可以在字符类中添加空白匹配器's
:
[a-zA-Z's]+
也可以使用否定的字符类来拒绝匹配某些字符,例如以下正则表达式将匹配除数字以外的任何内容:
[^'d]+
试试这个:
^[a-zA-Z][a-zA-Z''s]+$
只接受字母(小写或大写)和空格。