簡體   English   中英

使用Python在字符串中的字符前提取數字

[英]Extract Number before a Character in a String Using Python

我試圖在一系列字符串中提取字符“M”之前的數字。 字符串可能如下所示:

"107S33M15H"
"33M100S"
"12M100H33M"

所以基本上會有一組由不同字符分隔的數字,而“M”可能會出現不止一次。 對於此處的示例,我希望我的代碼返回:

33
33
12,33 #doesn't matter what deliminator to use here

我能想到的一種方法是將字符串拆分為“M”,並查找純數字的項目,但我懷疑有更好的方法可以做到這一點。 非常感謝您的幫助。

您可以使用re.findall使用簡單的(\\d+)M正則表達式( 1位數后跟M ,其中數字被捕獲到捕獲組中)。

請參閱IDEONE演示

import re
s = "107S33M15H\n33M100S\n12M100H33M"
print(re.findall(r"(\d+)M", s))

這是一個正則表達式演示

您可以使用rpartition來完成該工作。

s = '107S33M15H'    
prefix = s.rpartition('M')[0]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM