gpt4 book ai didi

python 正则表达式 : group of groups?

转载 作者:太空宇宙 更新时间:2023-11-04 03:44:30 25 4
gpt4 key购买 nike

我有这样的字符串

s = 'MR1|L2-S1x' 

模式总是相同的:一个或两个字符,在 [|.+:x-] 中可选地后跟一个数字和一个分隔符。此模式可以重复 6 次。

所以匹配模式很明确。

p = r'([A-Z]+)(\d)?([|.+:x-]+)'

但是如何让它把字符串匹配成一组呢?

更准确地说:现在我明白了

t=re.search(p,s)
t.groups()
('MR', '1', '|')

不过,我想要的是

('MR', '1', '|'),('L', '2', '-'),('S', '1', 'x') 

最佳答案

import re
tokens=[]
subject = "MR1|L2-S1xZZ+"
reobj = re.compile(r"([A-Z]{1,2})(\d?)([|.+:x-]?)")
for match in reobj.finditer(subject):
tokens.append((match.group(1),match.group(2),match.group(3)))
print(tokens)

输出:

[('MR', '1', '|'), ('L', '2', '-'), ('S', '1', 'x'), ('ZZ', '', '+')]

关于 python 正则表达式 : group of groups?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24561981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com