正则表达式与数字和字母不匹配

时间:2012-05-16 18:15:00

标签: regex

这个正则表达式是什么意思

  

[^ 0-9 ^ A-Z]

...

它不匹配任何数字,不匹配任何大写字符?

3 个答案:

答案 0 :(得分:1)

正确的正则表达式:[^0-9A-Z]+不需要第二个^,如果没有+,您只需匹配此类型的一个字符。

请注意,0-9\d相同,因此最好的正则表达式为:[^A-Z\d]+

答案 1 :(得分:1)

当插入符号^位于括号内组的开头时,它表示“找到除以下项目之外的任何内容”。但是,当它被放置在任何其他地方时,它意味着“找到插入符号和其他项目”。你的两者都有,这意味着“找到除了以下物品之外的任何东西(包括插入符号)”。

所以[^A-Z0-9]表示“找到除大写字母或数字之外的任何字符”

你的正则表达式是[^0-9^A-Z],这意味着“找到除大写字母以外的任何字符,数字一个插入符号。

正如其他人所指出的,你可能意味着第一个版本,但我认为重要的是要注意两者之间的区别。

答案 2 :(得分:0)

就目前而言,它匹配除数字,大写字母或抑扬符之外的任何单个字符。

开头的回旋(^)否定了字符集。不紧跟左括号的回旋被解释为字符集本身的一部分。 [^^]的正则表达式与除旋律之外的任何字符匹配。