" ^ [a-z] + $"之间有什么区别? vs" [^ a-z] + $"?
" ^ [A-Z] + $" =这是任何以字母
开头的东西" [^ A-Z] + $" =这个不是字母
任何人都可以确认吗?如果我错了,有人可以给我一个正则表达式,以及#34;以字母开头的任何东西。和"除了字母之外的任何东西"
修改
如果我看到字母和数字的组合,那么正则表达式怎么样呢?
[^ a-z0-9] + $
或是
它[^ a-z] + [^ 0-9] + $
由于
答案 0 :(得分:1)
正则表达式中的方括号指定字符类 - 它匹配括号中的所有字符。
在字符类之外,^
匹配字符串的开头或行的开头(取决于是否使用m
修饰符)。所以正则表达式^[a-z]+$
匹配一个完全是字母的行。如果删除$
(与字符串/行的末尾匹配),您将获得与以字母开头的任何内容匹配的正则表达式;在这种情况下,您也不需要+
量词(以1个或多个字母开头的任何内容也以1个字母开头)。
在字符类的开头,^
反转该类。它不匹配括号中的所有字符,而是匹配括号中不的所有字符。所以[^a-z]+$
匹配任何以非字母结尾的内容,因为$
匹配字符串/行的结尾。如上所述,您不需要+
,因为以1个或多个非字母结尾的任何内容也以1个非字母结尾。当所有是非字母时匹配的正则表达式将是:
^[^a-z]+$
当行中有任何非字母时匹配的正则表达式为:
[^a-z]
即。没有^
或$
锚。
答案 1 :(得分:1)
" ^ [A-ZA-Z] + $" =这是任何以字母
开头的东西" [^ A-ZA-Z] + $" =这个不是字母
如果你想包括低位和高位字母
可视化正则表达式的工具: Visualizing regular expressions