c#正则表达式:特殊字符:〜!@©#$%^& *()_ + {} |:“<>?`€[] \;',。/。

时间:2015-04-02 10:14:14

标签: c# .net regex

我需要检查下面提到的特殊字符以及我的数据中的扩展拉丁字符。

特殊字符~!@©#$%^&*()_+{}|:"<>?``€[]\;',./

变音符号é, ö, ò, etc

我尝试了[^a-z],但它不能正常工作,它还可以捕获不需要的字符。

你能帮我建议正确的正则表达式吗?

1 个答案:

答案 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中):

enter image description here