⑴ python 正则表达式 我想找到字符串中成对匹配的数据 请指教
针对你所给的示例字符串,貌似无法一次性地提取出后面的那个abc的,只能提取出前面的ammmmmde:
可以这样写:
>>> re.findall(r'(?:\d+)([a-zA-Z]+)', 'sssa 123ammmmmde234abc aaaaa 123ammmmmde234abc llll')
['ammmmmde', 'abc', 'ammmmmde', 'abc']
原因在于:正则从左往右查找,没有在找后面的abc时,也去找到之前的abc。
因为之前的abc,被在查找ammmmmde时,藏在中间了:
123ammmmmde234abc aaaaa 123ammmmmde
搜索过了,后面没法再搜索。
一个折中的办法是,用:
>>> re.findall(r'(?:\d+)([a-zA-Z]+)', 'sssa 123ammmmmde234abc aaaaa 123ammmmmde234abc llll')
['ammmmmde', 'abc', 'ammmmmde', 'abc']
找到上述的
['ammmmmde', 'abc', 'ammmmmde', 'abc']
然后你自己再另外提取,组合出来你要的:
[(ammmmmde, ammmmmde), (abc, abc)]
⑵ python 正则匹配中文问题
list打印是这样的,这是python的系统行为,改变不了。
如果不想用循环,可以用 print(u"\n".join(items))
⑶ Python正则表达式调用后出现乱码
是抓取苹果手机价格的吧.
别再cmd下执行了,在python自带的idle下F5调试,然后注意下趴下来的html是不是有乱码
⑷ 为什么python写的爬虫有时候抓取的数据是乱码
1. 使用chrome浏览器,打开示例页面http://tieba..com/p/3295185529?see_lz=1
2. 在帖子标题处,右键选择"审查元素",可以看到标题的源代码
3. 进行简单的分析,我们需要获取的是title后面的内容,根据页面实际内容,我们编写相应的正则表达式:
title_re=re.compile('<h1 class="core_title_txt " title="(.*?)"')
4. 同理,我们对帖子内容进行"审查元素",得到内容的源代码
5. 编写相应的正则表达式如下:
content_re=re.compile('<div id="post_content_\d*" class="d_post_content j_d_post_content ">(.*?)</div>')
6. 这样通过urllib2打开页面后,使用上述的正则表达式进行匹配,再对标题和文本内容进行相应的处理即可
⑸ python正则匹配不到想要的数据,感觉明明是对的啊
items = re.findall(r'',pagecode,re.S)
注意在后面要加上re.S
因为是多行匹配,下面写了一个只能抓一页信息的简陋版- -
-------------------------------------------------------------------------------------------
#coding:utf-8
importurllib2,re
classdown(object):
def__init__(self):
self.user_agent='Mozilla/4.0(compatible;MSIE5.5;WindowsNT)'
self.headers={'User-Agent':self.user_agent}
defgetPage(self):
try:
url='http://hdwan.net'
request=urllib2.Request(url,headers=self.headers)
response=urllib2.urlopen(request)
pageCode=response.read().decode('utf-8')
returnpageCode
excepturllib2.URLError,e:
ifhasattr(e,'reason'):
printu'连接失败...',e.reason
returnNone
defgetCont(self):
pageCode=self.getPage()
ifnotpageCode:
printu'页面加载失败...'
returnNone
items=re.findall('''<h2><ahref="(.*?)"rel="bookmark"target="_blank"title="(.*?)">.*?
</a></h2>''',pageCode,re.S)
foriinitems:
printu'电影名:%s 链接:%s '%(i[1],i[0])
if__name__=='__main__':
spider=down()
spider.getCont()
初学者一起加油。。。。
⑹ python中如何用正则表达式匹配汉字
name = re.search(r'导演: (.*?) 主演:.*? '.encode('utf-8'),text,re.S).group(1)
⑺ 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
运行结果:
⑻ python 用正则匹配网页中的中文字
patt=re.compile(ur'<a.*href="(.*?)".*官方下载地址1.*</a>')
⑼ python正则表达式,这样的字符串怎么匹配
根据提问者的问题,解答如下:
#查找所有除最后一个非zuobi姓名
xingmings=re.findall("(?isu)'([^']+?)']);cj",txt)
xingming_last=re.search("(?isu)'([^']+?)']);$",txt)
ifxingming_last:xingmings.append(xingmings[1])
第一行:查找所有满足条件的姓名,查找结果不包括txt的最后一个;
第二行:匹配txt的最后一个;
第三行:如果最后一个满足条件,则追加到xingmings中。