0

下面的XRegExp表达式的否定表达式是什么?

[\\p{Alphabetic}\\p{Nd}\\{Pc}\\p{M}]+

我曾经matchChain()使用上面的表达从句子中取出单词。

现在我将split()使用否定表达式来获得相同的结果,但每个单词都包含分隔符。

4

2 回答 2

2

要否定\p{…},请使用\P{…}. 例如, 的倒数\p{L}\P{L}

假设您在原始正则表达式中打错字,\\{Pc}应该是\\p{Pc},这将变为:

[\\p{Alphabetic}\\p{Nd}\\p{Pc}\\p{M}]+

\\p{…}要否定这一点,只需大写\\P{…}

[\\P{Alphabetic}\\P{Nd}\\P{Pc}\\P{M}]+

也应该可以这样做:

[^\\p{Alphabetic}\\p{Nd}\\p{Pc}\\p{M}]+
于 2014-12-15T20:22:03.357 回答
0

要否定字符类,您可以^在类的开头添加 a ,因此在您的示例中

[^\\p{Alphabetic}\\p{Nd}\\p{Pc}\\p{M}]+

请注意,\p{…}可以否定,\P{…}但它有一些陷阱:

[^\\p{Nd}] is the same of [\\P{Nd}]

[\\P{Nd}\\P{Pc}] // wrong

将匹配任何东西!因为数字 (Nd) 绝对是非标点符号 (Pc)

于 2019-05-10T10:30:52.680 回答