我需要检查下面提到的特殊字符以及我的数据中的扩展拉丁字符。
特殊字符:~!@©#$%^&*()_+{}|:"<>?``€[]\;',./
变音符号:é, ö, ò, etc
我尝试了[^a-z]
,但它不能正常工作,它还可以捕获不需要的字符。
你能帮我建议正确的正则表达式吗?
答案 0 :(得分:3)
在.NET中,您也可以使用特殊字符类。您提供的信件来自\p{IsLatin-1Supplement}
Unicode character set。
正则表达式可以是
[\p{IsLatin-1Supplement}~!@©#$%^&*()_+{}|:"<>?`€\[\]\\;',./]+
或
[\p{IsLatin-1Supplement}\p{P}\p{S}]+
因为您提供的符号来自符号和标点符号Unicode字符集。
匹配字符类中单个字符的示例代码:
var rx = new Regex(@"[\p{IsLatin-1Supplement}\p{P}\p{S}]");
var str = "~!@©#$%^&*()_+{}|:\"<>?€[]\\;',./`éöò";
var all = rx.Matches(str).Cast<Match>().ToList();
输出(在VS2012中):