rubularにアップロードした次の正規表現からいくつかのフィールドを解析する際に問題が発生しています。私が解析している文字列は、FTPサーバのバナーの特別なヘッダです。しかし、残念ながら、これは私だけ最後のマッチを与え、私は私を遅延キャプチャしようとしているとして、なぜわからない、(?i)^special(:[pmu](.*?)\^)?*
は、トリックを行うだろう:私はこのバナー、私はと考え正規表現から複数のグループを解析する
special:pTXT1TOCAPTURE^:mTXT2TOCAPTURE^:uTXT3TOCAPTURE^
ラインを処理するためには各グループ。また、私は元の一致文字列が含まれている場合、すなわち、また、空の文字列をキャプチャすることができなければならないことに注意してください:uと^
ラップの言葉がすべて表示するRubyのバージョン マッチ結果不可視: 特別:pTXT1TOMATCH ^:mTXT2TOMATCH ^:uTXT3TOMATCH^ マッチグループ:
- :uTXT3TOMATCH^
- TXT3TOMATCH
アイデアは行がテスト '特別' までの3 CAに続いて開始しなければならないということですp、m、またはuで区切られたグループは、次の^記号まで遅延しています。私は上記のテキストをキャプチャする必要があります - 基本的に私はTXT1TOCAPTURE、TXT2TOCAPTURE、TXT3TOCAPTUREを見つける必要があります。これらの3つのキャプチャグループの少なくとも1つが存在する必要があります。
(?:(?:^special:)|\G(?!\A)\^:)[pmu]([^^]+)
はそれがrubular.comに取り組んでください:あなたは\G
修飾子を持っている場合があります事前
それはRubyのであれば、PCREタグは何ですか? – revo
実際には、式はpcreに準拠する必要があります - 実際のランタイムは私のPC上でpcreを使用します。私はそれを明確にすべきだった。 – johnco3