2

私はこのテキストを持っています:

W/NNP あり/NNP 取得/NNP 支払い済み/NNP for/IN 行き/NNP へ/TO カレッジ/NNP !/. Check/NNP it/PRP out/RP here/RB !/. http/NN :/: //sldollar.notlong.com/JJ apple/NN iphone/NN TGIF/NNP 豚/NN インフルエンザ/NN

現在、この正規表現を使用して、関心のある領域をキャプチャしています。

[a-zA-Z]*/NN[PS]* [a-zA-Z]*/NN[PS]*

これをテストするためにRegexPalを使用しています。

ここに画像の説明を入力

これはキャプチャしますが、キャプチャTGIF/NNP swine/NNしませんswine/NN flu/NN。これをキャプチャするために正規表現を修正する方法について何か提案はありますか?

4

2 に答える 2

2

他の誰かがこれを必要とする場合、答えは前向きな先読みを使用することだと思います:

([a-zA-Z]*/NN[PS]* )(?=([a-zA-Z]*/NN[PS]*))
于 2012-08-12T06:22:29.210 に答える
0

複数の一致は重複できません。

apple/NN iphone/NN TGIF/NNP swine/NN flu/NN
AAAAAAAAAAAAAAAAAA BBBBBBBBBBBBBBBBB
         CCCCCCCCCCCCCCCCCC DDDDDDDDDDDDDDD

上記の A と B とマークされたマッチは互いに続きますが、ピース C はマッチ A の途中から始まるため (B 内の D も同様)、それらはマッチではありません。

一度一致させてから、前の開始点の後のある時点で再検索するか、先読みを使用して後半部分が消費されないようにする必要があります。

于 2012-08-12T06:22:49.553 に答える