1. python抓取网页中文信息
#-*-coding:utf-8-*-
importurllib
importre
#使用正则表达式限定抓取的网页地址
regex=r'<ahref="(.+?)"target="_blank"><strongclass="'
pat=re.compile(regex)
page=1
url="
info=urllib.urlopen(url).read()
Sub_pages=re.findall(pat,info)
#获得网址中所有产品信息
regex=r'<td>(.+?) </td>'
pat=re.compile(regex)
forpageinSub_pages:
content=urllib.urlopen(page).read()
info=re.findall(pat,content)
print' '.join(info)#改成这样试试
2. python正则表达式是什么
正则表达式(regex)用于探索给定字符串中的固定模式。我们想找到的模式可以是任何东西。可以创建类似于查找电子邮件或手机号码的模式。还可以创建查找以a开头、以z结尾的字符串的模式。
创建模式:
使用正则表达式时,首先需要学习的是如何创建模式。接下来将对一些最常用的模式进行逐一介绍。可以想到最简单的模式是一个简单的字符串。
pattern = r'times'
string = "It was the best of times, it was the worst of times."
print(len(re.findall(pattern,string)))
“正则表达式,又称规则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或re),是计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本”,那使用正则表达式的目的是什么呢?网络中只写了两句话:
1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”)。
2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。
大家可以简单的理解为两点:search和match。OK,了解了正则表达式的概念和作用,我们赶紧进入Python的学习吧!正则表达式不是Python独有的武器,但Python中的正则表达式无疑是最简单却又最强大的。
3. 转python正则表达式判断文本中是否有中文
python判断是否是中文需要满足u'[\u4e00-\u9fa5]+',需要注意如果正则表达式的模式中使用unicode,那么要匹配的字符串也必须转换为unicode,否则肯定会不匹配。
zhPattern = re.compile(u'[\u4e00-\u9fa5]+')
一个小应用,判断一段文本中是否包含简体中:
match = zhPattern.search(contents)
if match:
print '有中文:%s' % (match.group(0),)
else:
print '没有包含中文'
4. python怎么用正则表达式提取中文
Python re正则匹配中文,其实非常简单,把中文的unicode字符串转换成utf-8格式就可以了,然后可以在re中随意调用
unicode中中文的编码为/u4e00-/u9fa5,因此正则表达式u”[\u4e00-\u9fa5]+”可以表示一个或者多个中文字符
>>> import re
>>> s='中文:123456aa哈哈哈bbcc'.decode('utf8')
>>> s
u'\u4e2d\u6587\uff1a123456aa\u54c8\u54c8\u54c8bbcc'
>>> print s
中文:123456aa哈哈哈bbcc
>>> re.match(u"[\u4e00-\u9fa5]+",s)
<_sre.SRE_Match object at 0xb77742c0>
>>> pat='中文'.decode("utf8")
>>> re.search(pat,s)
<_sre.SRE_Match object at 0x16a16df0>
>>> newpat='这里是中文内容'.decode("utf8")
>>> news=re.sub(pat,newpat,s)
>>> print news
这里是中文内容:123456aa哈哈哈bbcc
from:http://blog.aizhet.com/web/12078.html
5. python的re,正则表达式,可以用中文么
解决了>>>
a='中文'>>>
a'\xd6\xd0\xce\xc4'>>>
import
re>>>
mytestre=re.compile('\xd6\xd0\xce\xc4')>>>
b='中文asdf223中文ss'>>>
mytestre.sub('zw',b)'zwasdf223zwss'>>>复制代码关键是要找到中文相应coding对应的编码,这里中文='\xd6\xd0\xce\xc4'所以,就用\xd6\xd0\xce\xc4代替中文就可以了,如果是其他编码,也用类似的方法找到编码的字符串就可以了,没测试过,应该是这样的。哈哈。:mrgreen:
6. Python用正则表达式匹配含有中文的字符串,匹配不到
代码如下:
#coding=utf-8
importre
s=u'<li><aclass="nav-first"href="/">首页</a></li>'
r=re.compile(u'<li><asclass="[^"]*"shref="[^"]">(.*?)(?=</a></li>)')
ss=r.findall(s)
forstrinss:
printstr
运行结果:
7. Python 求正则表达式匹配中文
#coding=utf-8
importre
string=u"""<代码>书名1【精装版】<代码>
<代码>书名2【豪华版版】<代码>
<代码>书名3<代码>"""
fresult=re.findall(u">(.*?)[【|<]",string)
foriteminfresult:
printitem.encode("utf-8")
8. python正则表达式是什么
python正则表达式是:
'hing'
'wing'
'123456'
'dddddd'
'regex.py'
'.*.py'
正则表达式(简称为 regex)是一些由字符和特殊符号组成的字符串, 描述了模式的重复或者表述多个字符。正则表达式能按照某种模式匹配一系列有相似特征的字符串。换句话说, 它们能够匹配多个字符串。
孤立的一个正则表达式并不能起到匹配字符串的作用,要让其能够匹配目标字符,需要创建一个正则表达式对象。通常向compile()函数传入一个原始字符形式的正则表达式,即 r'.....'。
要让正则表达式不区分大小写,可以向re.compile()传入re.IGNORECASE或re.I,作为第二个参数。通过传入re.DOTALL作为re.compile()的第二个参数,可以让句点字符匹配所有字符,包括换行字符。
9. python怎么用正则表达式提取中文
1、字符串line='ufeffD0002044x01大数据x01数据分析x01技术x01工具x01应用
'
想提取出其中的“大数据”,“数据分析”,“技术”,“工具”,“应用”这些中文,用了正则表达式:
>>>pat2='x01(.*?)'
>>>rs=re.compile(pat2).findall(line)
>>>print(rs)
['','','','','']
显示的结果是空,请问如何才能正确的提出中文部分。
2、原文: 法规名称:'《中华人民共和国合同法》',Items:[{法条名称:'第五十二条'
匹配成: 《中华人民共和国合同法》第五十二条
(?<=法规名称:').*?(',Items:[{法条名称:').*?(?=') 请问这样匹配哪里错了?Python报sre_constants.error: unterminated character set at position 22
3、Python re正则匹配中文,其实非常简单,把中文的unicode字符串转换成utf-8格式就可以了,然后可以在re中随意调用
unicode中中文的编码为/u4e00-/u9fa5,因此正则表达式u”[u4e00-u9fa5]+”可以表示一个或者多个中文字符
>>> import re
>>> s='中文:123456aa哈哈哈bbcc'.decode('utf8')
>>> s
u''
>>> print s
中文:123456aa哈哈哈bbcc 。
10. python,用正则表达式匹配特定汉字
在Python的string前面加上‘r’, 是为了告诉编译器这个string是个raw string,不要转意backslash '\' 。 例如,\n 在raw string中,是两个字符,\和n, 而不会转意为换行符。由于正则表达式和 \ 会有冲突,因此,当一个字符串使用了正则表达式后,最好在前面加上'r'。
在[]中
-长用来指定一个字符集,在这个字符集中的一个可以拿来匹配:[abc] [a-z]
-元字符在在字符集中不起作用
-在[]内用^表示补集,用来匹配不在区间范围内的字符
s=r'aba' 匹配abc
s=r't[io]p' 匹配tip或者top
s=r't[a-z0-9A-Z]'匹配t+0-9或者a-z或者A-Z
[abc]表示“a”或“b”或“c”
[0-9]表示0~9中任意一个数字,等价于[0123456789]
[\u4e00-\u9fa5]表示任意一个汉字
[^a1<]表示除“a”、“1”、“<”外的其它任意一个字符
[^a-z]表示除小写字母外的任意一个字符