我有下面提到的正则表达式,它将识别以下特殊字符:
~!@©#$%^&*()_+{}|:"<>?`€[]\;',./
正则表达式:
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;这是有效的(在这种情况下点有效)。
答案 0 :(得分:1)
\p{P}
包含.
符号,因此匹配。
如果字符类不再是您的案例的“特殊”字符,则可以从字符类中减去该点,并且列表中的其他标点符号为:
[\p{IsLatin-1Supplement}\p{P}\p{S}-[.]]
然后16.01
将不匹配。