1)正则表达式怎么说:只有在没有字母的情况下才增加匹配计数器?
我想出了这个:
"/^[^a-zA-Z]+$/"
它似乎工作,但我不明白为什么"/^[^a-zA-Z]+/"
工作时不起作用"/[^a-zA-Z]+$/"
?
2)这是什么意思?: "/[a-zA-Z]+/"
我认为这意味着只有当所有元素都在 az 或 AZ 范围内时,匹配计数器才会增加。但测试表明我错了。也试过这个"/^[a-zA-Z][a-zA-Z]+/"
,但这也给“aa11”一个1。
提前致谢
您发布的唯一正确的正则表达式是/^[^a-zA-Z]+$/
. 其余的都是错误的。
您需要^
and$
将匹配分别锚定到字符串的开头和结尾。
/^[^a-zA-Z]+/
匹配aaa111
,因为没有字符串结尾的锚点。/[^a-zA-Z]+$/
匹配111aaa
,因为没有字符串开头的锚点。/[a-zA-Z]+/
匹配111aaa111
,因为没有字符串的开始或结尾锚点。如果字符串中的任何位置有任何字母,则匹配。我个人喜欢只用/^[:alpha:]+$/
你用一个dilometer 开始正则表达式,它可以是任何东西,所以#^[:alpha:]+$#
也可以。^
是输入的开始,$
也是结束。+
适用于 1 个或更多的匹配项。教程/信息