特定の文字ブロックが文字列の後半に存在するかどうかに基づいて、文字列の先頭を異なる方法で一致させたいと考えています。これの非常に単純化されたバージョンは次のとおりです。
re.search("""^(?(pie)a|b)c.*(?P<pie>asda)$""", 'acaaasda')
が一致する場合は文字列の先頭<pie>
に表示し、一致しない場合は を表示します。a
b
通常の数値先読みを使用しますが、これら 2 つの間で一致するグループと一致しないグループの数は保証されません。
私は現在取得していerror: unknown group name
ます。私の腸の沈んだ感覚は、これは私が望んでいることは不可能だからだと教えてくれます (名前付きグループの先読みは、通常の言語パーサーの機能ではありません)。 4 時間か 5 時間分の正規表現の書き込みを破棄し、明日再帰降下パーサーか何かとしてすべてやり直します。
助けてくれてありがとう。