如何在字符串中检查包含特殊字符(如_ . , () &^% $ # @ ! *
)的字符串? 我试图创建一个正则表达式验证器来检查字符串,如下所示。正则表达式:检查字符串中的任何特殊字符
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