Python:在一行文本中查找2个字符串的值

时间:2019-01-02 11:33:25

标签: python

我有一些要查找的具有不同ID的行。

文本行可能如下所示:

  

第一个ID_1:4533,第二个是ID_0:123“

     

在这一行中,第一个是ID_0:24,另一个是ID_1:65

我的目标是找到第一个ID的编号(第1行的4533和第2行的24),然后将这些编号放在一个列表中,然后找到第二个ID的编号,并将其附加在第二个列表中。

>

下面的代码应该演示我想要的内容,但是它不能正常工作,因为ID可以称为ID_0或ID_1。理想情况下,我只会搜索ID_,然后返回该数字,而不管它是ID_0还是ID_1

ID_1 = "ID_1:([0-9]+)"
match = re.search(ID_1, line)
firstNumber = match.group(1)
secondNumber = match.group(2)

我想像的是这样的代码:

ID = "ID_0:([0-9]+)" or  "ID_1:([0-9]+)" 
match = re.search(ID, line)

1 个答案:

答案 0 :(得分:0)

这是使用re.findall

的一种方法

例如:

import re

s = """The first ID_1:4533 and the second is ID_0: 123
In this line the first is ID_0: 24 and the other is ID_1: 65
"""
firstNumber = []
secondNumber = []
for line in s.splitlines():
    fNum, sNum = re.findall(r"ID_\d*:\s?(\d*)", line)
    firstNumber.append(fNum)
    secondNumber.append(sNum)

print(firstNumber)
print(secondNumber)

输出:

['4533', '24']
['123', '65']