1

より大きな正規表現でいくつかの部分式を作成しようとしています。各部分式は、入力のある場所または別の場所で何かに一致しますが、両方の場所ではなく、できれば「関心のある領域」ごとに同じ名前のグループを使用します。たとえば、下のイタリック体のボリューム単位と太字の通貨単位を一致させたいと考えています。

  • $3.23米ドル/ガロン
  • ガロンで 3.23米ドル
  • 4.50カナダドル/ガロン
  • 1ガロン@ 3.23米ドル
  • 10ガロン。@ $4.50カナダドル

またはより一般的に:

  • stuffmorestuff XXXイエトモアスタッフ
  • XXXをもっと見る

stuffmorestuffは部分式の複雑なセットになる可能性があります。

のいくつかの組み合わせを使用して可能かもしれないようです

  • グループ スタックのプッシュ/ポップ
  • バランス グループ
  • 見回す

しかし、どうすればよいかわかりません。それは交互(|)または異なる表現の複数のパス(同じことになると思います)に帰着しますか?

4

1 に答える 1

1

おそらく、このような代替を使用する必要がありますか?

^(stuffmorestuff)XXX(yetmorestuff)|(stuff)XXX(morestuff)$

しかし、最終的には 4 つのキャプチャ グループになります。複数のグループに同じグループ名を使用すると、.NET 正規表現エンジンがどのように動作するかわかりません。

于 2011-12-02T22:59:30.043 に答える