正規表現を使用して文字列のリストに一致させたい: 1a, 2aa, 3aaa... 文字列の最初の数字は、その数字に続く a の数を示します。
本能的に、後方参照が役立つかもしれないと思いますが、それは真実ではありません。
正規表現では、後方参照を使用して、以前にキャプチャしたサブパターンと一致させることができます。たとえば、(.+) \1に一致しaaa aaaます。
パターンが一致した回数{n}、{n,m}またはで後方参照を使用できますか{n,}?
たとえば、\da{\1}理想的には に一致3aaaしますが、これを python building modulereでテストしましたが、機能しません。\da{\1}コンパイラは別のリテラルとして理解しているようです:
>>> re.compile('\da{\1}', re.DEBUG)
in
category category_digit`
literal 97
literal 123
literal 1
literal 125
<_sre.SRE_Pattern object at 0xb7726790>
>>> re.compile('\da{1}', re.DEBUG)`
in
category category_digit
max_repeat 1 1
literal 97
<_sre.SRE_Pattern object at 0xb7707820>
この機能はモジュールによって実装されていませんか、それとも単にこの機能が基本的な正規表現アルゴリズムでサポートされていないためですか?