【发布时间】:2021-06-23 18:45:43
【问题描述】:
我有一组以多个顺序出现的模式。我想用一个名称来引用每个模式,以便对它们进行排序并提取它们的信息。下面的代码不起作用,因为一个命名组只能定义一次,并且将一个组放在多个 | 的操作数中。运算符被解释为重新定义。
a = r'(?P<A>AAA)'
b = r'(?P<B>BBB)'
c = r'(?P<C>CCC)'
d = r'(?P<D>DDD)'
x = r'(?P<X>XXX)'
cases = '|'.join([fr'{a}{b}{c}',
fr'{b}{c}{x}',
fr'{b}{a}{x}',
fr'{x}{d}{a}',
...])
pattern = fr'({cases})'
result = [(x.group('A'),
x.group('B'),
x.group('C'),
x.group('D'),
x.group('x'))
for x in re.finditer(pattern, long_string)]
有没有办法将同名的组放在 | 的不同部分?运营商?
【问题讨论】:
-
是的,如果你使用 PyPi 正则表达式模块。
re不支持。
标签: python regex regex-group