正则表达式:拉丁字母除外

Acu*_*ute 1 php regex

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

我想出了这个:

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

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

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

提前致谢

Mar*_*ers 5

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

你需要^$分别匹配字符串的开始和结束.

  • /^[^a-zA-Z]+/匹配,aaa111因为没有字符串结束锚.
  • /[^a-zA-Z]+$/匹配,111aaa因为没有字符串起始锚.
  • /[a-zA-Z]+/匹配,111aaa111因为没有字符串的开始或结束锚.如果字符串中的任何地方有任何字母,则匹配.