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

2024-05-23 21:42:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在一系列字符串中提取“m”之前的数字。字符串可能看起来像:

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

所以基本上会有一组由不同字符分隔的数字,“M”可能会出现不止一次。对于这里的示例,我希望返回我的代码:

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

我能想到的一种方法是用“M”分割字符串,找到纯数字的项,但我怀疑有更好的方法可以做到这一点。非常感谢你的帮助。


Tags: to方法字符串代码示例hereuse数字
2条回答

您可以使用一个简单的(\d+)Mregex(1+个数字,后跟M,其中数字被捕获到一个捕获组)和re.findall

IDEONE demo

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

这里是一个regex demo

你可以用角色扮演来完成那项工作。

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

相关问题 更多 >