2 回答
TA贡献1799条经验 获得超6个赞
如果您真的想使用,请re.sub使用:
.*?(\d+)kg.*
这将尽可能少地使用0 个或多个字符,在匹配和分组之前根据需要扩展\d+。
代码:
>>> import re
>>> val = 'bobsmith2kgminus10meshcompt3kgfredrogers'
>>> print ( re.sub(r'.*?(\d+)kg.*', r'\1', val) )
2
否则,您可以在以下位置使用这个更简单的正则表达式re.search:
(\d+)kg
代码:
>>> print ( re.search(r'(\d+)kg', val).group(1) )
2
TA贡献1993条经验 获得超5个赞
我的猜测是这个表达式可能很简单:
(\d+)kg.*
演示
测试
import re
regex = r"(\d+)kg.*"
test_str = """
2kgminus10meshcomp3kg
some_content_before200kgminus10meshcomp3kg
"""
print(re.findall(regex, test_str))
输出
['2', '200']
或与re.sub:
import re
regex = r".*?(\d+)kg.*"
test_str = """
2kgminus10meshcomp3kg
some_content_before200kgminus10meshcomp3kg
"""
subst = "\\1"
print(re.sub(regex, subst, test_str))
添加回答
举报