2024-05-23 21:42:36 发布
网友
我试图在一系列字符串中提取“m”之前的数字。字符串可能看起来像:
"107S33M15H" "33M100S" "12M100H33M"
所以基本上会有一组由不同字符分隔的数字,“M”可能会出现不止一次。对于这里的示例,我希望返回我的代码:
33 33 12,33 #doesn't matter what deliminator to use here
我能想到的一种方法是用“M”分割字符串,找到纯数字的项,但我怀疑有更好的方法可以做到这一点。非常感谢你的帮助。
您可以使用一个简单的(\d+)Mregex(1+个数字,后跟M,其中数字被捕获到一个捕获组)和re.findall。
(\d+)M
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]
您可以使用一个简单的
(\d+)M
regex(1+个数字,后跟M
,其中数字被捕获到一个捕获组)和re.findall
。见IDEONE demo:
这里是一个regex demo
你可以用角色扮演来完成那项工作。
相关问题 更多 >
编程相关推荐