如何使用python脚本仅读取特定行中的数字,例如
“1009运行测试工作”在这里我应该只读数字“1009”而不是“1009运行测试工作”
答案 0 :(得分:0)
一个简单的正则表达式应该:
import re
match = re.match(r"(\d+)", "1009 run test jobs")
if match:
number = match.group()
答案 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]+).*"