如何分割包含变量内容的字符串?

时间:2019-01-21 19:49:51

标签: python-2.7

我有一组信息(数据),如下所示:

data1 = KRBRP0 29.18ZHSFP0 37.33

为拆分这些信息,我使用以下表达式:

re.split('([[a-zA-Z] {5} 0 \ s * \ d +。\ d +)',data2)

但是在我的数据中,我有一些具有不同的模式,如下所示:

data2 = EMG1P0119.44AFJ P0127.44KRBRP0 29.18ZHSFP0 37.33

能否让我用来拆分第二个模式(data2)的表达式?

谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用以下模式在正则表达式中使用“或”:(this | that)。要不捕获,可以在捕获组内部使用?:,例如:

import re

data1 = "KRBRP0 29.18ZHSFP0 37.33"
data2 = "EMG1P0119.44AFJ P0127.44KRBRP0 29.18ZHSFP0 37.33"
regex = r"([a-zA-Z]*\s*(?:P0|1P0)\s*[0-9]+.[0-9]+)"
print re.findall(regex, data1)
print re.findall(regex, data2)

# Outputs:
# ['KRBRP0 29.18', 'ZHSFP0 37.33']
# ['EMG1P0119.44', 'AFJ P0127.44', 'KRBRP0 29.18', 'ZHSFP0 37.33']

但是您甚至不需要“或”,您可以简单地使用另一个0或多个(*),例如1:regex = r"([a-zA-Z]*\s*1*P0\s*[0-9]+.[0-9]+)"