C# 等效于 Java 标点正则表达式

Posted

技术标签:

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

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

Java:

public static final String expression = "[\\s\\pPunct]";

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

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

使用这个:

Regex regex = new Regex(@"[\s\pP]");

特别注意@的使用。

【讨论】:

以上是关于C# 等效于 Java 标点正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

Java 和 C# 正则表达式不产生相同的结果

在 C# 中获取等效的正则表达式以切断前导和尾随子字符串

使 JavaScript 正则表达式等效于 PHP 正则表达式

是否有 Python 等效于正则表达式的 Perl "/x" 修饰符?

java正则表达式验证标点符号

是否有与 Java 正则表达式中的交集 (&&) 运算符等效的 JavaScript 正则表达式?