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

时间:2016-03-22 23:59:54

标签: python regex string

我试图在字符之前提取数字" M"在一系列字符串中。字符串可能如下所示:

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

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

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

我能想到的一种方法是将字符串拆分为" M",并查找纯数字的项目,但我怀疑有更好的方法可以做到这一点。非常感谢您的帮助。

2 个答案:

答案 0 :(得分:13)

您可以使用简单的(\d+)M正则表达式( 1+数字后跟M ,其中数字被捕获到捕获组中){{1} }。

请参阅IDEONE demo

re.findall

这是一个regex demo

答案 1 :(得分:2)

您可以使用rpartition来完成这项工作。

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