C#正则表达式 - 特殊字符

时间:2015-04-30 06:02:46

标签: c# regex c#-4.0

我有下面提到的正则表达式,它将识别以下特殊字符:

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

正则表达式:

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

如何在上面的正则表达式中排除文字点字符(.),因为我需要验证价格值,例如&#34; 16.01&#34;这是有效的(在这种情况下点有效)。

1 个答案:

答案 0 :(得分:1)

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

如果字符类不再是您的案例的“特殊”字符,则可以从字符类中减去该点,并且列表中的其他标点符号为:

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

然后16.01将不匹配。