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