0

\p{S}こんにちは、誰かが正規表現の任意のシンボルに一致することを含む素晴らしいソリューションを提供してくれました。問題は、 から 2 つの記号を削除する必要があることです\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

もう 1 つの解決策は\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 に答える