正则表达式“^ [a-zA-Z]”或“[^ a-zA-Z]”

时间:2010-05-07 18:29:51

标签: c# .net regex

^[a-zA-Z][^a-zA-Z]之间有区别吗?

当我签入C#时,

Regex.IsMatch("t", "^[a-zA-Z]")  // Returns true (I think it's correct)

Regex.IsMatch("t", "[^a-zA-Z]")  // Returns false

有许多网站使用[^a-zA-Z]作为字母表。我不确定哪一个是正确答案。

4 个答案:

答案 0 :(得分:61)

是的,第一个意思是“匹配所有以字母开头的字符串”,第二个意思是“匹配包含非字母的所有字符串”。插入符号(“^”)以两种不同的方式使用,一种用于表示文本的开头,另一种用于否定方括号内的字符匹配。

答案 1 :(得分:12)

^[a-zA-Z]表示行开头的任何a-z或A-Z

[^a-zA-Z]表示任何不是a-z或A-Z

的字符

答案 2 :(得分:6)

有区别。

^字符出现在[]之外时,与行的开头(或字符串)匹配。当^字符出现在[]内时,它会匹配[]内未出现的任何字符。

答案 3 :(得分:3)

^在字符类之外(“[a-zA-Z]”)注意它是“开始于”运算符。
^字符内部否定指定的类。

因此,“^ [a-zA-Z]”转换为“以az或AZ中的字符开头”,“[^ a-zA-Z]”转换为“不是az或AZ”

以下是快速参考:http://www.regular-expressions.info/reference.html