Python爬虫正则表达式常用符号和方法
Python语言虽然历史悠久,但直到最近几年才真正崭露头角。随着技术的不断进步,Python爬虫技术也逐渐成为网络数据获取的重要工具。在Python爬虫中,正则表达式扮演着至关重要的角色。我们将介绍Python爬虫正则表达式常用的符号和方法,以及具体用法。对SEO优化、长沙网络推广和Python爬虫技术感兴趣的同学们,快来了解一下吧!
正则表达式是一种强大的字符串处理工具,它拥有独特的语法和独立的处理引擎。虽然在效率上可能不如Python内置的str方法,但其功能之强大无可否认。正则表达式的语法在各种编程语言中是通用的,只是在不同的语言中支持的语法数量有所不同。
一、常用符号
1. .:匹配任意字符(除换行符外)。
2. :匹配前一个字符0次或无限次。
3. ?:匹配前一个字符0次或1次。
4. :表示贪心算法,尽可能匹配更多的字符。
5. .?:表示非贪心算法。
6. ():括号内的数据作为结果返回。
二、常用方法
1. findall:匹配所有符合规律的内容,返回包含结果的列表。
2. search:匹配并提取第一个符合规律的内容,返回一个正则表达式对象。
3. sub:替换符合规律的内容,返回替换后的值。
三、使用示例
1. 演示"."的使用:匹配任意字符(除换行符外)。
2. 演示""的使用:匹配前一个字符0次或无限次。
3. 演示"?"的使用:匹配前一个字符0次或1次。
4. 演示"."与贪婪算法的结合使用。
secret_code = 'hadkfalifeIfasdjifja134love23345sdfyou8dfse'。这是一个包含各种字符和模式的字符串。我们想要从中提取某些特定的片段。
(6)括号()的使用:括号用于捕获匹配的子字符串。例如:
c = re.findall('(.?)', secret_code)
print(c) 输出结果:['I', 'love', 'you']。括号内的内容作为匹配的结果返回。
(7)re.S的使用:re.S标志允许`.`匹配任何字符,包括换行符。例如:
s = '''sdfhellofsdfworldasdf'''
d = re.findall('(.?)', s, re.S)
print(d) 输出结果:['hello', 'world'],re.S的作用在于使.在匹配时包括字符。
(8)findall的使用:findall方法返回所有匹配的子字符串组成的列表。例如:
s2 = 'asdfI123lovedfd'
f2 = re.findall('(. ?)123(. ?)', s2)
print(f2) 打印的结果为包含两个元素的元组,这里为'love'。如果s2包含多个匹配的子串,f2将包含多个这样的元组。
(9)search的使用:search方法只返回第一个匹配的子字符串。例如:
f = re.search('(. ?)123(. ?)', s2).group(2)
print(f) 打印的结果为'love',group(2)表示返回第二个括号匹配到的内容。
(10)sub的使用:sub方法用于替换匹配的子字符串。例如:
s = '123rrrrr123'
output = re.sub('123(.?)123', '123%d123'%789, s)
print(output) 打印的结果为替换后的字符串'123789123'。
(11)\d的使用:\d用于匹配数字。例如:
a = 'asdfasf1234567fasd555fas'
b = re.findall('(\d+)', a)
print(b) 打印的结果为所有数字字符串的列表,如['1234567', '555']。\d+可以匹配一个或多个连续的数字。
编程语言
- Python爬虫正则表达式常用符号和方法
- FCKeditor 在chrome中不显示问题
- jQery ajax——load()方法示例介绍
- js将滚动条滚动到指定位置的简单实现方法
- thinkphp框架表单数组实现图片批量上传功能示例
- 基于css3新属性transform及原生js实现鼠标拖动3d立方
- JavaScript的setter与getter方法
- PHP之认识(二)关于Traits的用法详解
- JavaScript判断浏览器和hack滚动条的写法
- Vue2.0 从零开始_环境搭建操作步骤
- 设计高可用和高负载的网站系统的几个注意事项
- 详解WordPress中简码格式标签编写的基本方法
- PHP变量的定义、可变变量、变量引用、销毁方法
- PHP数组与对象之间使用递归实现转换的方法
- fso实例
- asp.net中js+jquery添加下拉框值和后台获取示例