这对于一些问题非常方便:
>>> 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'}
[结束更新]
我四处搜索并绞尽脑汁,但无法产生任何好的线索。猜测此功能不存在,因为 re 执行此操作的唯一方法可能是为每个组扫描整个字符串一次(当然我可以在循环中执行此操作)但我想我会看到 stackoverflow 的大脑不得不说。
谢谢你的帮助,
乔希