この (非常に単純化された) 文字列の例を考えてみましょう:
1aw2,5cx7
ご覧のとおりdigit/letter/letter/digit
、コンマで区切られた 2 つの値です。
これで、これを次のように一致させることができます。
>>> from re import match
>>> match("\d\w\w\d,\d\w\w\d", "1aw2,5cx7")
<_sre.SRE_Match object at 0x01749D40>
>>>
問題は、しかし、私は\d\w\w\d
2回書かなければならないということです. 小さなパターンでは、これはそれほど悪くはありませんが、より複雑な正規表現では、まったく同じことを 2 回記述すると、最終パターンが膨大になり、扱いにくくなります。また、冗長なようです。
名前付きキャプチャ グループを使用してみました:
>>> from re import match
>>> match("(?P<id>\d\w\w\d),(?P=id)", "1aw2,5cx7")
>>>
しかし、 ではなく の 2 回の出現を探していたため、機能し1aw2
ませんでしdigit/letter/letter/digit
た。
などのパターンの一部を保存して\d\w\w\d
、後で同じパターンで使用できるようにする方法はありますか? つまり、パターン内のサブパターンを再利用できますか?