嗨,我有一个字符串,我想用Python解析它。我是新手,所以真的很感激你的帮助。
ABC_XYZ::A_BCD_XYZ_C9_KDFJ_7011_1_11_14输出C9:总是以字母和数字开头
输出7011:总是4位或更多位数
输出1, 11, 14:总是在字符串的末尾。一两位数字。可能有3人以上。
更新。
我使用的是[^_]+,它解析了所有的'_‘。我只想要那些火柴。
发布于 2020-05-11 21:04:00
你可能会相处的
import re
def get_values(string):
rx = re.compile(r'_([A-Z]\d)_.*?_(\d{4,}(?=_)).*?((?:_\d{1,2})+)')
m = rx.search(string)
if m:
return (m.group(1), m.group(2), [item for item in m.group(3).split("_") if item])
print(get_values("ABC_XYZ::A_BCD_XYZ_C9_KDFJ_7011_1_11_14"))
# ('C9', '7011', ['1', '11', '14'])请参阅regex101.com上的表达式的演示。
发布于 2020-05-11 20:40:02
发布于 2020-05-11 20:44:34
我不明白你到底需要什么,但准则:
[^_]+_[^_]+::[^_]_[^_]+_[^_]+_([A-Z]\d)_[^_]+_(\d{4,})_(\d)_(\d+)_(\d+)给出您所提供的字符串的输出。
为了测试和学习regex,我建议您访问像这这样的站点。
https://stackoverflow.com/questions/61738646
复制相似问题