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 标点正则表达式的主要内容,如果未能解决你的问题,请参考以下文章
使 JavaScript 正则表达式等效于 PHP 正则表达式