python - 多行字符串 Python 正则表达式

标签 python regex multilinestring

我试图从每行的该字符串中获取最后一个数字,但我的代码只能获取“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/

相关文章:

python - 如何解析以空格分隔的键值对的字符串?

java - Maven zip 程序集,包括子目录内容

uilabel - 如何截断多行 UILabel 的每一行尾部

python - pyodbc 是否具有执行标量函数

python - 回归: Training Test Split - held out test?

regex - 替换 START 和 END 字符串之间的文本,不包括 perl 中的 END 字符串

python - 如何将 GEOS MultiLineString 转换为多边形?

node.js - Mongoose 5.3.8 - 无法使用 MultiLineString 和 $push 提取地理键

python - 使用和更新子文档 Pymongo 检查 _id 是否存在

python pandas dataframe 乘以匹配索引或行名称的列