将字符串与正则表达式匹配或根本不匹配

时间:2014-09-10 19:39:54

标签: regex

我正在使用以下正则表达式:^([a-zA-Z])*

它只成功匹配像这样的alpha字符串 hello

但是当我在字符串中添加一个数字he3llo时,它只匹配he

如果整个单词不是alpha ,我怎么能告诉它根本不匹配

P.S:我正在http://www.regexr.com/

上试验它

3 个答案:

答案 0 :(得分:2)

在末尾添加$

^([a-zA-Z])*$

现在意味着匹配字符串的开头,后跟0或更多a-z,后跟字符串结尾

我会将*更改为+

答案 1 :(得分:2)

你需要结束字符串锚点$

^([a-zA-Z]*)$

这将仅匹配字母字符或空字符串。使用当前的正则表达式,它只需要匹配字符串开头的零个或多个字母字符。

答案 2 :(得分:1)

除了家伙回答你还可以使用单词边界。因为锚点只会限制你一个字。

例如,如果您使用此正则表达式:

^([a-zA-Z]+)$

您只会匹配如下字词:

<强> Example

enter image description here

但是如果你使用这个正则表达式的单词边界。您可以匹配多个单词:

\b([a-zA-Z]+)\b

<强> Working demo

enter image description here