Skip to main content
 首页 » 编程设计

` €[]\;',./" rel="bookmark">c# 正则表达式 : Special characters: ~! @©#$%^&*()_+{}| :">` €[]\;',./

2024年08月06日40飞鱼

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

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

变音符号:é, ö, ò, 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 中):