Python从字符串解析int

eal*_*eon 0 python

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.


Rob*_*obᵩ 5

如果您知道前缀是name,那么您可以仅删除该字符串,也可以跳过前四个字母,如下所示:

s = 'name123'
print int(s.replace('name',''))

s = 'name123'
print int(s[4:])
Run Code Online (Sandbox Code Playgroud)