下面的XRegExp表达式的否定表达式是什么?
[\\p{Alphabetic}\\p{Nd}\\{Pc}\\p{M}]+
我曾经matchChain()使用上面的表达从句子中取出单词。
现在我将split()使用否定表达式来获得相同的结果,但每个单词都包含分隔符。
要否定\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}]+
要否定字符类,您可以^在类的开头添加 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)