2016-10-14 9 views
-2

与えられたテキストに互いに近い2つのフレーズが含まれているかどうかを識別できる正規表現が必要です。互いに0〜5ワード離れている。 2つのフレーズのインデックスを差し引くことで問題を解決できると考えるかもしれません。しかし、それはテキスト中にフレーズが複数現れている場合は特に困難です。ここでは、各フレーズのための1件の発生とおもちゃの例である:例えばregex複数の句の出現java

、2つの句の間の唯一の3つの言葉があるよう

 text1 = "i eat a sweet juicy red apple " 

  phrase1 = "i eat" 
     phrase2 = "red apple" 

試合は、しかし、それはdoesnのtとの一致は

 text2 = "i eat a sweet juicy orange yesterday. I also like red apples " 

です。中間に5単語以上あります。これを行う簡単な方法はありますか? Thansk。ここで

+0

正規表現は、既存のテキストを一致しますが、あなたのケースでは、テキストを記述し、いくつかのロジックです。 – MaxZoom

+0

私はこの問題を理解していない、と私は特にこのようなものの正規表現を使用して人々の執着を理解していない。テキストを単語に分割し、フレーズのインデックスを見つけて、フレーズが何語離れているかを確認します。 – nhouser9

+0

この質問は30分前に削除されたようなものですか? – fvu

答えて

0

は私のために働いたソリューションです:

Pattern.matches(".*\\b" + phrase1 + "\\W*(?:\\w*\\W*){0,5}?" + phrase2 + "\\b.*", text))