我需要检查下面提到的特殊字符以及我的数据中的扩展拉丁字符。
特殊字符:~!@©#$%^&*()_+{}|:"<>?``€[]\;',./
变音符号:é, ö, ò, etc
我试过了[^a-z] , 但它不能按我的需要工作,它还会捕获不需要的字符。
你能帮我建议正确的正则表达式吗?
请您参考如下方法:
在 .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 中):
