0

嗨,有人为我提供了一个很好的解决方案,其中包括\p{S}匹配正则表达式中的任何符号。问题是我需要从\p{S}. 我不想也不想&成为'对手。

我想也许\p{S^&^'}会奏效,但事实并非如此。我在网上看过,但我不确定要搜索什么。

请帮忙。

\b\p{L}*[\p{S}\p{P}]((\p{L}[\p{P}\p{S}])|([\p{P}\p{S}]\p{L})|(\p{L}))+\b

另一种解决方案是\b([a-zA-Z]+(?:[^\w\s^'&]|_)[a-zA-Z]*)|[a-zA-Z]*(?:[^\w\s^'&]|_)[a-zA-Z]+\b,但它会捕获以标点符号结尾的单词。如果它不这样做,它也会起作用。

4

2 回答 2

1

使用字符类减法(如果可用):

[\p{S}-[&']]

如果不可用,请使用前瞻

(?!.?[&'])\p{S}
于 2013-01-29T18:00:14.357 回答
0

您可以使用负面的前瞻(?!.*[&']),即

\b(?!.*[&'])\p{L}*[\p{S}\p{P}]((\p{L}[\p{P}\p{S}])|([\p{P}\p{S}]\p{L})|(\p{L}))+\b
于 2013-01-29T18:05:36.160 回答