我有一些要查找的具有不同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)
答案 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']