Python爬虫正则表达式常用符号和方法

网络编程 2025-03-29 06:11www.168986.cn编程入门

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+可以匹配一个或多个连续的数字。

上一篇:FCKeditor 在chrome中不显示问题 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by