在python中读取任意位数的字符串中的数字

在python中读取任意位数的字符串中的数字,python,Python,我在解析字符串时遇到问题。这是我的密码: name='report 11 hits' print(name[7:9]) print(name[11:]) 输出: 11 hits 11 hits 但是,如果我需要将字符串键入为 name='report 112 hits' print(name[7:9]) print(name[10:]) 输出: 11 hits 11 hits 这意味着,每当我输入一个超过三位数的数字时,程序就不能很好地读取它。我想知道是否有人可以写我如何修改我的

我在解析字符串时遇到问题。这是我的密码:

name='report 11 hits'
print(name[7:9])
print(name[11:])
输出:

11
hits
11
 hits
但是,如果我需要将字符串键入为

name='report 112 hits'
print(name[7:9])
print(name[10:])
输出:

11
hits
11
 hits
这意味着,每当我输入一个超过三位数的数字时,程序就不能很好地读取它。我想知道是否有人可以写我如何修改我的代码,这样无论我写什么数字,程序都能正确读取。谢谢

import re

name='report 11155342 hits'

print(re.findall(r'\d+', name)[0])
印刷品:

11155342
印刷品:

11155342
但是如果您确定数字将是字符串中的第二个元素,并用空格分隔,那么您可以这样做

print name.split(None, 2)[1]
# 112
此拆分将是有效的,因为我们将最大拆分限制为2

但是如果您确定数字将是字符串中的第二个元素,并用空格分隔,那么您可以这样做

print name.split(None, 2)[1]
# 112
此拆分将非常有效,因为我们将最大拆分限制为2。

您可以使用拆分,然后打印生成列表的第二个元素:

name='report 112 hits'
namelist = name.split()
print(namelist[0])
# report
print(namelist[1])
# 112
print(namelist[2])
# hits
您可以使用“拆分”,然后打印生成列表的第二个元素:

name='report 112 hits'
namelist = name.split()
print(namelist[0])
# report
print(namelist[1])
# 112
print(namelist[2])
# hits

假设始终存在空间:

_, count, hits = name.split(" ")
print(count)
print(hits)

假设始终存在空间:

_, count, hits = name.split(" ")
print(count)
print(hits)

如果保证字符串始终为“report hits”(报告命中数),其中有一些位数,则可以执行以下操作:

name = 'report 11155342 hits'
print name.split()[1]
print name.split()[2]

如果保证字符串始终为“report hits”(报告命中数),其中有一些位数,则可以执行以下操作:

name = 'report 11155342 hits'
print name.split()[1]
print name.split()[2]

这在很大程度上取决于要分析的字符串。是否总是保证名称具有该格式?报告命中率?是的,名称必须是report n hits或report n BATTING或report n Slaging格式。然后我投票赞成split:在真正需要时最好使用正则表达式:这在很大程度上取决于要解析的字符串。是否总是保证名称具有该格式?报告命中率?是的,名称必须是report n hits或report n BATTING或report n Slaging格式。然后我投票赞成拆分:在真正需要时最好使用正则表达式:这是多次拆分,还是将其优化为只执行一次拆分?如果有更多列,则拆分效率低下。选中“是”,我想这将花费优化的两倍时间,执行大约20个字符的拆分不是很密集,但是…这是多次拆分,还是将其优化为仅执行一次拆分?如果有更多列,则拆分效率低下。选中“是”,我想这将花费优化的两倍时间,执行大约20个字符的拆分不是很密集,但是…如果有更多列,则拆分效率很低。Check@thefourtheye Check comments,字符串的列数不会超过3列。如果有更多的列,我认为限制拆分的数量不会有很大的不同。Check@thefourtheye Check comments,字符串的列数不会超过3列。我不认为限制所有纳秒的分裂次数会有很大的不同!想想所有的纳秒!