[英]Multiline String Python Regex
我試圖從每一行的這個字符串中獲取最后一個數字,但我的代碼只能得到“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)
import re
str="""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"""
pattern = re.compile(r'(?m)(\d+)\s*$')
match = pattern.findall(str)
for i in match:
print(i)
輸出為:15 10 5 5 25
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.