我有简单的正则表达式来解析这个字符串:
rawresp0 = """<response>
<comment>Привет.</comment>
</response>"""
我需要得到:
Привет。
但由于某种原因,下面的代码会返回:
Привет.
None
什么是错的
def pars_resp(text):
reg = re.compile(ur'(?<=<comment>).+(?=</comment>)', re.U)
print reg.search(unicode(text, "UTF-8")).group(0)
print pars_resp(rawresp0)
答案 0 :(得分:1)
你有两张照片。第一个打印搜索结果,第二个打印返回值pars_resp
,None
,因为您没有返回任何内容。
将其更改为
def pars_resp(text):
reg = re.compile(ur'(?<=<comment>).+(?=</comment>)', re.U)
print reg.search(unicode(text, "UTF-8")).group(0)
pars_resp(rawresp0)
或
def pars_resp(text):
reg = re.compile(ur'(?<=<comment>).+(?=</comment>)', re.U)
return reg.search(unicode(text, "UTF-8")).group(0)
print pars_resp(rawresp0)
它将打印您想要的内容。
答案 1 :(得分:1)
没有错。好吧,除了
print pars_resp(rawresp0)
函数pars_resp
返回None
。删除该print语句,使最后一行为:
pars_resp(rawresp0)
它会起作用。
修改:
或者,让函数返回要打印的字符串:
def pars_resp(text):
reg = re.compile(ur'(?<=<comment>).+(?=</comment>)', re.U)
return reg.search(unicode(text, "UTF-8")).group(0)
print pars_resp(rawresp0)
这通常更有用,因为您现在可以使用提取的字符串执行其他操作而不是打印它。