1)如何在正则表达式中说:只有在没有字母的情况下才增加匹配计数器?
我想出了这个:
"/^[^a-zA-Z]+$/"
它似乎有用,但我不明白为什么"/^[^a-zA-Z]+/"
在"/[^a-zA-Z]+$/"
有效时无效?
2)这是什么意思?:"/[a-zA-Z]+/"
我认为这意味着只有当所有元素都在a-z或A-Z范围内时,匹配计数器才会增加。但测试表明我错了。还尝试了这个"/^[a-zA-Z][a-zA-Z]+/"
,但这也为“aa11”提供了1。
提前致谢
答案 0 :(得分:5)
您发布的唯一正确的正则表达式是/^[^a-zA-Z]+$/
。其余的都是错的。
分别需要^
和$
到anchor匹配字符串的开头和结尾。
/^[^a-zA-Z]+/
匹配aaa111
,因为没有字符串结束锚。/[^a-zA-Z]+$/
匹配111aaa
,因为没有字符串开头的锚点。/[a-zA-Z]+/
匹配111aaa111
,因为没有字符串的开始或结束锚。如果字符串中有任何字母,则匹配。答案 1 :(得分:1)
我个人喜欢使用/^[:alpha:]+$/
你用稀释计启动正则表达式,这可能是#^[:alpha:]+$#
也适用的任何东西。 ^
是输入的开头,$
是结束。 +
用于匹配1个或更多。 tutorial/info