首页 > 解决方案 > 如何创建一个正则表达式来查找某些字符集之间的所有文本片段?

问题描述

我有一个看起来像“E10 1/05/03 2/3211 3/AO Yuzhmor”的字符串。我需要提取的部分如下' \d\/'

1) 05/03
2) 3211
3) AO Yuzhmor

我最后的想法是' \d\/(.*?)(?=(( \d\/)|\Z))'

但它仍然无法在最后一块上正常工作(|\Z 指令似乎没有做任何事情)。

标签: pythonregexre

解决方案


这可能很棘手,因为我们不知道如何构建这些字符串的所有规则。一种选择是使用您的正则表达式来拆分字符串

>>> re.split(r" \d/", 'E10 1/05/03 2/3211 3/AO Yuzhmor')[1:]
['05/03', '3211', 'AO Yuzhmor']

另一个是对字段更具体,假设它们总是“1/”、“2/”和“3/”

>>> re.match(r".*?1/(.*?) 2/(.*?) 3/(.*)", 'E10 1/05/03 2/3211 3/AO Yuzhmor').groups()
('05/03', '3211', 'AO Yuzhmor')

推荐阅读