test1 = 'name1'
test2 = 'name2'
..
test3 = 'name45'
test4 = 'name1231231'
Run Code Online (Sandbox Code Playgroud)
假设我有一串以'name'开头的字符串,后跟任意长度的字符串.
如何解析字符串中的数字?
是regex唯一的方法还是有内置模块可以完成这项任务?
Mar*_*ans 15
在Python 3中,您可以执行以下操作:
import string
for test in ['name1', 'name2', 'name45', 'name1231231', '123test']:
print(int(test.strip(string.ascii_letters)))
Run Code Online (Sandbox Code Playgroud)
给你:
1
2
45
1231231
123
Run Code Online (Sandbox Code Playgroud)
string.ascii_letters给你一个包含所有大写和小写字母的字符串.Python的strip()函数接受一个字符串,指定要删除的字符集,这种情况下是所有字母字符,因此只留下数字.
注意:这不适用于诸如的字符串123name456.
如果您知道前缀是name,那么您可以仅删除该字符串,也可以跳过前四个字母,如下所示:
s = 'name123'
print int(s.replace('name',''))
s = 'name123'
print int(s[4:])
Run Code Online (Sandbox Code Playgroud)