これと同様の質問をしたところ、優れた正確な回答がありましたが、まったく新しい問題があることがわかりました. 関連する入力が1行あることがわかりました。これを抽象的な方法で尋ねる方法がわからないので、すぐに入力にジャンプします。
(より良い例を提供するために編集)
bear999bear888bear777bear666fox---bear222bear333bear444bear555fox
(マーカー間のアイテムは必ずしも数値ではありません)
これは式です(更新された入力例に一致するように編集されています):
bear.*bear(?<matchString>(.(?!bear.*bear))*?)bear.*fox
444を返しています。これを微調整して444 と 777の両方を返す方法はありますか? 最初の一致をスキップして、後者のみを優先しているようです。私は持っています!除外して、左側の最も内側のみに一致するようにします。
私はここでテストしています: http://regexlib.com/RETester.aspx
これは、2 行に分割して複数行をオンにするとうまく機能します。入力が 1 行であると動作しなくなるのはなぜですか?
アドバイスをいただければ幸いです。