我正在使用以下正则表达式:^([a-zA-Z])*
它只成功匹配像这样的alpha字符串
hello
但是当我在字符串中添加一个数字he3llo
时,它只匹配he
。
如果整个单词不是alpha ,我怎么能告诉它根本不匹配
P.S:我正在http://www.regexr.com/
上试验它答案 0 :(得分:2)
在末尾添加$
^([a-zA-Z])*$
现在意味着匹配字符串的开头,后跟0或更多a-z,后跟字符串结尾
我会将*
更改为+
答案 1 :(得分:2)
你需要结束字符串锚点$
。
^([a-zA-Z]*)$
这将仅匹配字母字符或空字符串。使用当前的正则表达式,它只需要匹配字符串开头的零个或多个字母字符。
答案 2 :(得分:1)
除了家伙回答你还可以使用单词边界。因为锚点只会限制你一个字。
例如,如果您使用此正则表达式:
^([a-zA-Z]+)$
您只会匹配如下字词:
<强> Example 强>
但是如果你使用这个正则表达式的单词边界。您可以匹配多个单词:
\b([a-zA-Z]+)\b
<强> Working demo 强>