我想要一個正則表達式來驗證一個字符串以字母開頭,後面跟着一些字母,數字或下劃線。根據我的EditPadPro正則表達式解析器,下面的測試應該通過。但事實並非如此。爲什麼這個正則表達式不能在.NET中工作?
Regex.IsMatch("Class1_1", @"^\w[\w|\d|_]*$").ShouldBeTrue();
我錯過了什麼?
我想要一個正則表達式來驗證一個字符串以字母開頭,後面跟着一些字母,數字或下劃線。根據我的EditPadPro正則表達式解析器,下面的測試應該通過。但事實並非如此。爲什麼這個正則表達式不能在.NET中工作?
Regex.IsMatch("Class1_1", @"^\w[\w|\d|_]*$").ShouldBeTrue();
我錯過了什麼?
你的正則表達式工作,但並沒有做你認爲它的作用。
您應該使用
Regex.IsMatch("Class1_1", @"^[A-Za-z]\w*$")
(測試)
或者,「^ \ w [\ w \ d _] * $」,但正如David M所指出的那樣\ w包含\ d和_無論如何,所以實際上「^ [a-zA-Z] \ w + $」 – Zarigani 2010-04-26 15:43:10
\ W包括\ d和下劃線 - 即使你的測試通過,正則表達式將不會被測試,你希望它是什麼!
Regex.IsMatch(「Class1_1」,@「^ \ w + $」)不起作用。對此有何評論? – 2010-04-26 16:14:57
可能是您的全球化設置 - 表達式匹配我的機器。 – 2010-04-26 16:53:15
這匹配'a | b' – SLaks 2010-04-26 15:38:39
沒關係所有人。我有一個輸入錯誤,但我不知道\ w包含數字和下劃線 – 2010-04-26 16:20:40