^[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]
作为字母表。我不确定哪一个是正确答案。
答案 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”