下面的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)