如何使用python脚本只读取特定行的数字

时间:2016-08-08 11:07:44

标签: python

如何使用python脚本仅读取特定行中的数字,例如

“1009运行测试工作”在这里我应该只读数字“1009”而不是“1009运行测试工作”

6 个答案:

答案 0 :(得分:0)

一个简单的正则表达式应该:

import re
match = re.match(r"(\d+)", "1009 run test jobs")
if match:
    number = match.group()

https://docs.python.org/3/library/re.html

答案 1 :(得分:0)

使用正则表达式:

>>> import re
>>> x = "1009 run test jobs"
>>> re.sub("[^0-9]","",x)
>>> re.sub("\D","",x) #better way

答案 2 :(得分:0)

如果您的号码始终位于int(line.split()[0])

,则为此

答案 3 :(得分:0)

或者简单检查字符串中的数字。

[int(s) for s in str.split() if s.isdigit()]

其中str是你的文字串。

答案 4 :(得分:0)

非常确定有一种“更加pythonic”的方式,但这对我有用:

s='teststri3k2k3s21k'
outs=''
for i in s:
    try:
        numbr = int(i)
        outs+=i
    except:
        pass
print(outs)

如果数字始终位于字符串的开头,您可能会考虑outstring = instring[0,3]之类的内容。

答案 5 :(得分:0)

您可以使用正则表达式执行此操作。这很容易:

import re
regularExpression = "[^\d-]*(-?[0-9]+).*"
line = "some text -123 some text"
m = re.search(regularExpression, line)
if m:
    print(m.groups()[0])

此正则表达式提取文本中的第一个数字。它将'-'视为数字的一部分。如果您不希望将此正则表达式更改为此表达式:"[^\d-]*([0-9]+).*"