注册 登录
编程论坛 Python论坛

关于python的正则匹配后 输出 中文的问题

cloud_baby 发布于 2010-04-01 12:00, 1949 次点击
小弟初学python  ,  写了个小代码发现有问题 请各位帮忙看看,代码如下:

# coding=utf-8
import string
import re
data = '<td valign="top" class="black">中文字幕123-12上的看法</td>'
p=('<td valign="top" class="black">(.*?)</td>',re.U)
a = re.findall(p,data)
print a


输出结果:

['\xe4\xb8\xad\xe6\x96\x87\xe5\xad\x97\xe5\xb9\x95123-12\xe4\xb8\x8a\xe7\x9a\x84\xe7\x9c\x8b\xe6\xb3\x95']
我想让他输出的是中文, 我该怎么做呢?
4 回复
#2
外部三电铃2010-04-01 12:17
程序代码:
# coding=utf-8
import string
import re
data = '<td valign="top" class="black">中文字幕123-12上的看法</td>'
p=('<td valign="top" class="black">(.*?)</td>',re.U)
a = re.findall(p,data)
print a[0]

注意最后一行,a是一个列表
#3
外部三电铃2010-04-01 12:21
如果python文件是utf-8编码的,程序应该这样写

程序代码:
#!/usr/bin/python
#
-*- coding: UTF-8 -*-
import string
import re
data = u'<td valign="top" class="black">中文字幕123-12上的看法</td>'
p=('<td valign="top" class="black">(.*?)</td>',re.U)
a = re.findall(p,data)
print a[0].encode("gb2312")

#4
cloud_baby2010-04-01 12:51
回复 2楼 外部三电铃
非常感谢, 用a[0]就解决了!
#5
a5152002010-09-12 23:46
可以这样


for i in re.findall(('<td valign="top" class="black">(.*?)</td>',re.U),'<td valign="top" class="black">中文字幕123-12上的看法</td>',re.U):
   print i



[ 本帖最后由 a515200 于 2010-9-12 23:54 编辑 ]
1