如何在字符串中檢查包含特殊字符(如_ . , () &^% $ # @ ! *
)的字符串? 我試圖創建一個正則表達式驗證器來檢查字符串,如下所示。正則表達式:檢查字符串中的任何特殊字符
bool isOk = Regex::IsMatch(firstname, "^[a-zA-Z]+$");
這是註冊表單中的名稱字段。它應該允許日文字符。但是我的RegEx只允許英文字符。我知道這是因爲[a-zA-Z]
。但如何只檢查特殊字符並留下日文或韓文字符?
如何在字符串中檢查包含特殊字符(如_ . , () &^% $ # @ ! *
)的字符串? 我試圖創建一個正則表達式驗證器來檢查字符串,如下所示。正則表達式:檢查字符串中的任何特殊字符
bool isOk = Regex::IsMatch(firstname, "^[a-zA-Z]+$");
這是註冊表單中的名稱字段。它應該允許日文字符。但是我的RegEx只允許英文字符。我知道這是因爲[a-zA-Z]
。但如何只檢查特殊字符並留下日文或韓文字符?
既然你可能h對你不想允許的內容比你想要允許的內容更好的想法,使用[^]語法使用反轉字符集。
bool isOk = Regex::IsMatch(firstname, "^[^_\\.,\\(\\)&^%$#@!\\*]+$");
但請注意英文'FULL STOP' (U+002E)有時用於名稱。你的黑名單方法會禁止他們。所以,考慮從上面的代碼中刪除它。
此外,'SPACE' (U+0020)和'HYPHEN-MINUS' (U+002D)用於英文名稱。您的白名單方法將禁止他們。
我剛找到的RegExp表達式的一些例子爲Unicode字符:
正則表達式匹配所有日本共同&少見漢字
`(4e00 – 9fcf)`
〜大奇卡!
([一-龯])
正則表達式從terrancesnyder上GitHubGist匹配Hirgana或片假名
([ぁ-んァ-ン])
還有更多...
正則表達式,japanese.txt:https://gist.github.com/terrancesnyder/1345094
還有一個很好的答覆: Regular expressions (regex) in Japanese
這可能會有所幫助http://www.regular-expressions.info/unicode.html –
可能的重複[更改RegEx以允許英文和日文字符](http://stackoverflow.com/questions/15151230 /改變正則表達式到允許換既-英日字符) – brandonscript