我正在尝试将包含在"15m"
之类的字符串中的整数转换为integer
。
使用下面的代码,我可以实现我想要的。但是我想知道是否有更好的解决方案,或者我不知道哪个函数已经实现了此功能。
s = "15m"
s_result = ""
for char in s:
try:
i = int(char)
s_result = s_result + char
except:
pass
result = int(s_result)
print result
此代码将输出以下结果:
>>>
15
也许没有这样的“更好”的解决方案,但是我想看看其他解决方案,例如也许使用regex
。
答案 0 :(得分:4)
我发现使用正则表达式是一个很好的解决方案。
import re
result = int(re.sub('[^0-9]','', s))
print result
这将导致:
>>>
15
答案 1 :(得分:1)
您还可以从^\d+
行的开头匹配一个或多个数字
import re
regex = r"^\d+"
test_str = "15m"
match = re.search(regex, test_str)
if match:
print (int(match.group()))