【问题标题】:C# Regular Expression-Special charactersC#正则表达式-特殊字符
【发布时间】:2023-03-31 23:00:03
【问题描述】:

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

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

正则表达式:

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

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

【问题讨论】:

    标签: c# regex c#-4.0


    【解决方案1】:

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

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

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

    然后16.01 将不匹配。

    【讨论】:

    • @Rakesh:如果这对你有用,请告诉我。如果不是,请提供您测试的字符串以及预期的输出。
    • 我会检查并告诉你
    猜你喜欢
    • 1970-01-01
    • 2018-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-05
    • 2013-09-19
    相关资源
    最近更新 更多