0

次のテキスト行から:

start - before capture text - tocapture - maybe after capture

- maybe after captureオプションの部分に沿ってドラッグすることなく、値「text - tocapture」を確実にキャプチャする必要があります。

  • のスペース - ダッシュ - スペース パターンは、text - tocapture存在する場合と存在しない場合があります。text - tocaptureは、1 つの単語またはスペースを含む場合もあります。
  • が存在する場合- maybe after capture、常にスペース-ダッシュ-スペースで始まり、次にランダムなテキストになります。

text - tocapture存在するかどうかにかかわらず、完全に一致する必要があり- maybe after captureます。

私が思いついた最高のものは次のとおりです。

^start - before capture (.*)( - .*)?$

問題は、おそらく「 - 」も含まれているため、「text - tocapture」の後のすべてをキャプチャすることです。私はいくつかの否定的な先読みを試しましたが、うまくいきませんでした。以下の Rubular 出力を参照してください。

最初の試み

2 回目の試行

4

2 に答える 2

0

私があなたが正しく必要としているものを理解しているなら、私はこれがそれをするべきだと思います:

^start - before capture (.*? - .*?)( - .*)?$

必要なもの$1をキャプチャする必要があります。あなたの例では、それは以下をキャプチャします:

1.  text - tocapture
2.  - maybe after capture
于 2013-01-09T18:38:27.110 に答える
0

これは正常.*です。すべてをキャプチャし、2 番目の部分はオプションです。

したがって、あなた.*は2番目のグループをキャプチャtext - tocapture - maybe after captureして何も残しません。量指定子?はそれをオプションにするので、空の文字列で完全に満足しています...

必要なものを確実にキャプチャするために、これを使用できます。

^start - before capture ([^-]+-[^-\s]+).*
于 2013-01-09T18:34:18.037 に答える