我试图从每行的该字符串中获取最后一个数字,但我的代码只能获取“25”。我想要 15、10、5、5 和 25。
import re
string = """
1073811-S0-A M3S FRT SUBFRAME MNT FRT INR LH 15
1073851-S0-A M3S REAR QUARTER INNER LH 10
1080023-S0-C M3 ASY, COWL SIDE, LH 5
1080024-S0-C M3 ASY, COWL SIDE, RH 5
1080473-S0-B M3 ASY, SHOTGUN TOWER, LH 25
"""
qty = re.findall(r'\d{1,3}$', string)
print(qty)
最佳答案
您可以使用标志re.MULTILINE
:
qty = re.findall(r'\d{1,3}$', string, flags=re.MULTILINE)
您得到:['15', '5', '25']
但有些行也以尾随空格结尾。 因此,您可以使用带有可选空格的组:
qty = re.findall(r'(\d{1,3})\s*$', string, flags=re.MULTILINE)
您将得到:['15', '10', '5', '5', '25']
。
您还可以搜索后跟可选空格并以字符串结尾的数字。您可以以积极的态度来做到这一点:
qty = re.findall(r'\d{1,3}(?=\s*$)', string, flags=re.MULTILINE)
关于python - 多行字符串 Python 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59812402/