2016-10-26 10 views
0

:とwordb1 wordb2 ... wordbn正規表現非貪欲ワードキャプチャ

wordan

worda1のworda2 ... ...リテラルではありませんが、他の言葉もそこにある可能性があります。そして、言葉は「と」以外の何かになる可能性があります。

私はこの問題は、私がこれまでに書いた正規表現のである

wordb1 wordb2 wordbn

をキャプチャしたいのですが、私はwは\使用してきたということで、これはその後、 'と'と一致し、貪欲な捕獲につながる。 LookaheadとLookbehindは、キャプチャする必要のある任意の数の単語のために動作しません。

編集:ここでの例です:

と誰もが捉える必要がある公園に行って、誰もが自宅で

を残しませんでした:

誰もが自宅

で残っていませんでした。

正規表現では、phrをハードコードできません「誰も家に残されていない」というのは、「and」以外の単語の任意のシーケンスを取り込む必要があるからです。

さらに良い:

、それは朝だったと誰もが捉える必要がある公園に行って、誰もが自宅

で残っていなかった。

誰もが自宅で残っていなかった

大きな写真は、 dは最初の "and"までしかキャプチャしませんが、右から開始します。

これを行うためのコードを書くことができましたが、これを行うための正規表現があるかどうか疑問に思っています。

私はPython reを使用していますが、他の正規表現のフレーズにも対応しています。

ありがとうございました。

+0

あなたの質問はまだまだわかりません....あなたが探している正規表現は、2番目の 'と'の後にすべての単語をキャプチャするのと同じくらい単純でしょうか?そうでない場合、あなたが何をしているのかをさらに説明できますか? –

+1

要件を定式化できますか?連続してインクリメントされる数値の接尾辞を持つ連続した単語に一致しますか?正規表現は役に立たない。 –

+0

'word \ d * 'を使用できるリテラル文字列であれば、' word'とはどういう意味ですか? –

答えて

0

これはそれを行う必要があります。

/(?:.* and)?(.+)/ 

注これは行全体にマッチしますが、キャプチャ試合が希望の一部になること。実例はhereです。

は、しかし、いくつかの注意点があります。

  1. これは、1行に1つの文があることを前提としています。
  2. これは、 'and'という単語がないときは、行全体と一致します。多分それはあなたが欲しいものです。
  3. これは、行の最初の単語が 'と'ではないことを前提としています。
  4. これはまた、行の最後の単語が 'と'ではないことを前提としています。
+0

それは素晴らしいです - ありがとう! – user3750352

関連する問題