^[a-zA-Z]
和[^a-zA-Z]
之間有區別嗎?正則表達式「^ [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]
字母表網站。我不確定哪一個是正確的答案。
^[a-zA-Z]
和[^a-zA-Z]
之間有區別嗎?正則表達式「^ [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]
字母表網站。我不確定哪一個是正確的答案。
是的,第一種意思是「匹配所有以字母開頭的字符串」,第二種意思是「匹配所有包含非字母的字符串」。脫字符(「^」)以兩種不同的方式使用,一種用於指示文本的開始,一種用於否定方括號內的字符匹配。
+1兩全其美 - 簡明而正確。 – Dathan 2010-05-07 18:33:28
有差別。
當^
字符出現在[]
之外時,與該行(或字符串)的開頭匹配。當^
字符出現在[]
的內部時,它會匹配沒有出現在[]
內的任何字符。
^[a-zA-Z]
意味着在一行
[^a-zA-Z]
的開始任何AZ或AZ指並非AZ任何字符或AZ
^外的字符類的( 「[A-ZA-Z]」 )指出這是「開始」操作員。
^字符內部否定指定的類。
因此,「^ [a-zA-Z]」翻譯爲「以az或AZ開始的字符」,並且「[^ a-zA-Z]」翻譯爲「不是az或AZ」
這裏有一個快速參考:http://www.regular-expressions.info/reference.html
非常感謝你的答案。我現在可以清楚地看到。 – Win 2010-05-07 18:40:22
很高興雨不見了! – tloflin 2010-05-07 18:42:28
順便說一句,C#沒有正則表達式。 .NET框架。 – 2010-05-07 21:10:17