【问题标题】:C# equivalent of Java Punctuation regexC# 等效于 Java 标点正则表达式
【发布时间】:2011-02-11 22:55:57
【问题描述】:

我正在寻找与此正则表达式等效的 C# 中的等效项。

Java:

public static final String expression = "[\\s\\p{Punct}]";

{Punct} 是 Java 中的保留字符类,但我不确定如何创建等效表达式,以便 .net 正则表达式引擎不会出错。

【问题讨论】:

    标签: c# java regex


    【解决方案1】:

    [\s\p{P}] 匹配所有空格和标点符号。有趣的是,可以在 Character Classes 上的 MSDN 文档中以这种确切的形式找到它作为示例。与在 Java 中一样,\p{x} 用于 unicode 类别 x 中的任何单个字符。请参阅Unicode Categories 上的部分以获取除P 之外的可能性列表。

    【讨论】:

    • 嘿...我想出了与您完全相同的解决方案,尽管值得指出的是,这不会像那样工作。您需要在字符串之前使用@,否则您需要转义反斜杠。
    • 是的,我想到了,所以我只是把引号删掉了。现在我的帖子指的是文字字符串值;如何在 C# 中表示这些值是另一回事。 ;-) 顺便说一句,出于同样的原因,问题中的字符串在技术上是否也不正确?
    • 如果你点击编辑,你可以看到他写了"[\\s\\p{Punct}]",但它的格式不正确。我将编辑问题,以便您了解他打算写什么。
    • 是的,这也是我发现的。感谢您的回复!
    【解决方案2】:

    使用这个:

    Regex regex = new Regex(@"[\s\p{P}]");
    

    特别注意@的使用。

    【讨论】:

      猜你喜欢
      • 2010-09-07
      • 1970-01-01
      • 1970-01-01
      • 2016-04-23
      • 2018-07-20
      • 1970-01-01
      • 1970-01-01
      • 2020-02-01
      • 2022-01-05
      相关资源
      最近更新 更多