1

1)正则表达式怎么说:只有在没有字母的情况下才增加匹配计数器?

我想出了这个:

"/^[^a-zA-Z]+$/"

它似乎工作,但我不明白为什么"/^[^a-zA-Z]+/"工作时不起作用"/[^a-zA-Z]+$/"

2)这是什么意思?: "/[a-zA-Z]+/"我认为这意味着只有当所有元素都在 az 或 AZ 范围内时,匹配计数器才会增加。但测试表明我错了。也试过这个"/^[a-zA-Z][a-zA-Z]+/",但这也给“aa11”一个1。

提前致谢

4

2 回答 2

5

您发布的唯一正确的正则表达式是/^[^a-zA-Z]+$/. 其余的都是错误的。

您需要^and$将匹配分别锚定到字符串的开头和结尾。

  • /^[^a-zA-Z]+/匹配aaa111,因为没有字符串结尾的锚点。
  • /[^a-zA-Z]+$/匹配111aaa,因为没有字符串开头的锚点。
  • /[a-zA-Z]+/匹配111aaa111,因为没有字符串的开始或结尾锚点。如果字符串中的任何位置有任何字母,则匹配。
于 2012-05-10T06:08:22.917 回答
1

我个人喜欢只用/^[:alpha:]+$/ 你用一个dilometer 开始正则表达式,它可以是任何东西,所以#^[:alpha:]+$#也可以。^是输入的开始,$也是结束。+适用于 1 个或更多的匹配项。教程/信息

于 2012-05-10T06:19:47.460 回答