Python2.7 转义和正则匹配中文
今天爬虫(新浪微博 个人信息页面)的时候遇到了转义和正则匹配中文出乱码的问题。
先给出要匹配的部分网页源代码如下:
<span class=\"pt_title S_txt2\">昵称:<\/span><span class=\"pt_detail\">他们叫我远凸哥哥<\/span><\/li>\r\n\t\t
想要匹配得到的结果是这个人的昵称,即“他们叫我远凸哥哥”
1.转义
比较简单,需要转义的是反斜杠(\)和引号(")
>>> content='<span class=\\\"pt_title S_txt2\\\">昵称:<\\/span><span class=\\\"pt_detail\\\">他们叫我远凸哥哥<\\/span><\\/li>\\r\\n\\t\\t'
>>> print content
<span class=\"pt_title S_txt2\">昵称:<\/span><span class=\"pt_detail\">他们叫我远凸哥哥<\/span><\/li>\r\n\t\t
2. 匹配中文乱码的问题
问题如下:
>>> re.findall(r'(?<=昵称:<\\/span><span class=\\\"pt_detail\\\">).*?(?=<\\/span>)',content)
['\xcb\xfb\xc3\xc7\xbd\xd0\xce\xd2\xd4\xb6\xcd\xb9\xb8\xe7\xb8\xe7']
百度和google了一下,知道了大概思路就是要decode('utf8')。有说pattern要写成u'pattern'的,不过我试了好像没什么用,不知道是不是我用的2.X版本。最后解决办法如下:
#! /usr/bin/env python
#coding=utf8 import re
content6='<span class=\\\"pt_title S_txt2\\\">昵称:<\\/span><span class=\\\"pt_detail\\\">他们叫我远凸哥哥<\\/span><\\/li>\\r\\n\\t\\t'
b=re.findall(r'(?<=昵称:<\\/span><span class=\\\"pt_detail\\\">).*?(?=<\\/span>)',content6)
print b[0].decode('utf8')
他们叫我远凸哥哥
不知道大家有什么更好的写法,网上的写法试了好几种,我这里都是不行的。
Python2.7 转义和正则匹配中文的更多相关文章
- php 使用正则匹配中文 返回结果
$str = 'eg5455正则匹配中文123三国杀'; $patten='/[\x{4e00}-\x{9fa5}]+/u'; $a = preg_match($patten, $str, $mn); ...
- python正则匹配——中文字符的匹配
# -*- coding:utf-8 -*- import re '''python 3.5版本 正则匹配中文,固定形式:\u4E00-\u9FA5 ''' words = 'study in 山海大 ...
- JavaScript 正则匹配中文,中文符号,空格,全数字,以https:// 开头的url,用于各种场景的输入校验
业务场景1: 密码输入框需要验证输入中文,中文符号,空格等情况,以便于给出错误提示 业务场景2: 输入框只允许输入数字的情况 业务场景3: 输入框允许输入均为数字或以https:// 开头的url的情 ...
- php 正则匹配中文(转)
我使用正则表达式来匹配中问的时候,出现了无法匹配的问题,问题如下 PCRE does not support \L, \l, \N{name}, \U, or \u at offset 2 我原来的匹 ...
- php 正则匹配中文
在javascript中,要判断字符串是中文是很简单的.比如:var str = "php编程";if (/^[\u4e00-\u9fa5]+$/.test(str)) {aler ...
- python 正则匹配中文(unicode)(转)
由于 需求原因,需要匹配 提取中文,大量google下,并没有我需要的.花了一个小时大概测试,此utf8中文通过,特留文. 参考: http://hi.baidu.com/nivrrex/blo ...
- mysql正则匹配中文时存在的问题
可以看到,目前正则匹配字母没问题,c出现1次,2次,3次匹配的结果都是正常的 接下来我们看看匹配中文的效果 可以看到,当匹配连续出现歪时,结果就开始不正常了 然后我去看了下mysql的中文文档中关于正 ...
- 正则匹配中文 UTF-8 & GBK
在php 中: //GB2312汉字字母数字下划线正则表达式 GBK: preg_match("/^[".chr(0xa1)."-".chr(0xff).&qu ...
- php正则匹配中文
<?php $str = '你是我的+****xiaopingguo _ 23947237 _+冠军终归这里'; preg_match_all('/[\x{4e00}-\x{9fa5}A-Za- ...
随机推荐
- REST & SOAP webservice 小结
REST: REST是一种架构设计,特点是面向资源,存在于互联网的任何事物都可以理解为资源,REST相比较SOAP WS具有比较低的开发门槛. 1. 网络上的事物被抽象成资源,每个资源对应唯一的资源标 ...
- android启动activity文本框不获得焦点
在开发中,常常会碰到这种情况,打开一个activity后,第一个文本框自动获得焦点,同时会弹出软键盘输入框,这样很影响用户体验,现在来看解决方法. 我们先来看看为什么会出现上述情况,原因很简单,文本框 ...
- ubuntu14.04 安装搜狗输入法
(1)下载链接 http://pinyin.sogou.com/linux/ (2)清除fcitx $sudo apt-get purge fcitx* (3)使用deb安装工具gdebi,这个工具能 ...
- BZOJ NOI十连测 第二测 T2
思路:20%可以搜索.. #include<algorithm> #include<cstdio> #include<cmath> #include<cstr ...
- SIM卡尺寸及剪卡教程
手机SIM卡有全尺寸SIM卡.Mini-SIM卡.Micro-SIM卡.Nano-SIM卡.Embedded-SIM卡等类型,目前主流手机基本都是趋向使用Micro-SIM卡和Nano-SM卡. 一. ...
- 实现AT24C02的数据读写操作
/*************************************************************** 功能:11:32 2008-6-27 作者:SG 时间:2004-03 ...
- 如何不保存Word即可用Word打开想显示的内容!
今天遇到客户需要将数据用Word预览,原来做的时候是保存到本地然后打开,客户说这样不好,因为不一定预览了一定要保存,于是我翻箱倒柜的发现真没资料啊!!幸好经过我的大量实验(好吧,我是挨个方法试的!), ...
- jquery判断元素是否隐藏的多种方法
第一种:使用CSS属性 复制代码 代码如下: var display =$('#id').css('display'); if(display == 'none'){ alert("被 ...
- lisp构造表
CONS 操作符 我们刚刚学习了如何拆分一个表,现在学习如何合并一个表. CONS 操作符就是做这件事情的. 假设有一个列表 (1 2 3) ,我们做一下 CAR 操作: (car '(1 2 3)) ...
- LeeCode-Same Tree
Given two binary trees, write a function to check if they are equal or not. Two binary trees are con ...