これは、いくつかの問題に非常に便利です。
>>> re.search('(?P<b>.b.).*(?P<i>.i.)', 'abcdefghijk').groupdict()
{'i': 'hij', 'b': 'abc'}
しかし、事前にどのような順序を期待すべきかわからない場合はどうなりますか?
[アップデート]
たとえば、未知の順序の文字を含む入力変数があり、「b」が「i」の後に来る場合があります。'.b。'のグループを引き続き参照できるようにしたい そして私。' 入力変数の順序に従って正規表現を順序付ける必要はありません。だから、私はこのようなことをしたいのですが、それが可能かどうかはわかりません:
>>> re.search('(?P<b>.b.)|(?P<i>.i.)', unknown_order_alphabet_str).groupdict()
{'i': 'hij', 'b': 'abc'}
【更新終了】
私は周りを探し回って頭を悩ませましたが、良いリードを生み出すことができません。この機能を推測することはおそらく存在しないでしょう。おそらくこれを行う唯一の方法は、グループごとに文字列全体を1回スキャンすることです(もちろん、代わりにループで実行できます)が、stackoverflowの頭脳が何であるかがわかると思いましたそれについて言わなければなりませんでした。
助けてくれてありがとう、
ジョシュ