2015-04-30 208 views
1

我已经下文提到的正则表达式,将确定以下特殊字符:C#正则表达式,特殊字符

[email protected]©#$%^&*()_+{}|:"<>?`€[]\;',./ 

正则表达式:

var rx = new Regex(@"[\p{IsLatin-1Supplement}\p{P}\p{S}]"); 
var str = "[email protected]©#$%^&*()_+{}|:\"<>?€[]\\;',./`éöò"; 
var all = rx.Matches(str).Cast<Match>().ToList(); 

,如何排除文字点阵字符(. ),因为我需要验证价格值,如“16.01”这是有效的(在这种情况下,点是有效的)。

回答

1

\p{P}包含.符号,因此它是匹配的。

您可以减去字符类的点,如果它不再是你的情况“特殊”字符,并在列表中的其他标点符号是:

[\p{IsLatin-1Supplement}\p{P}\p{S}-[.]] 

然后16.01将不匹配。

+0

@Rakesh:请让我知道这是否适合你。如果它不提供您测试的字符串和预期的输出。 –

+0

我会检查并让你知道 – Rakesh

+0

它的工作。很感谢 – Rakesh