这是我与python的第一天,我被卡住了。我有一个文件,其内容如下所示:
如果用户选择foo,我只想返回1,2,4和23546477并写入文件:
这是我到目前为止所得到的:
import sys
import re
def merge():
if (len(sys.argv) > 1):
labfile = sys.argv[1]
f = open(labfile, 'r')
f.readline()
string = f.readline()
print "Possible Target States:"
print string
var = raw_input("Choose Target States: ")
print "you entered ", var
f.readline()
words = var.split()
for line in f.readlines():
for word in words:
if word in line:
m = re.match("\d+", line)
print m
//get the first number and store it in a list or an array or something else
f.close()
merge()
遗憾的是它不起作用 - 我看到<_sre.SRE_Match object at 0x7fce496c0100>
之类的行而不是我想要的输出。
答案 0 :(得分:1)
你想(至少):
if m: #only execute this if a match was found
print m.group() #m.group() is the portion of the string that matches your regex.
答案 1 :(得分:0)
查看documentation - re.match
会返回一个匹配对象,这就是您所看到的内容。 re.findall
将为您提供与给定行中的模式匹配的字符串列表。
要获得第一个,你做想要使用匹配对象,但是你需要re.search
not re.match
,然后你需要调用m.group()
来获取匹配的字符串匹配对象。