Python爬虫之re正则表达式库
在Python中,re模块是用来进行正则表达式匹配的库。正则表达式能够帮助我们更加方便快捷地从文本中提取我们需要的信息,是爬虫中经常会用到的一种技术。
什么是正则表达式?
正则表达式(regular expression)是一种文本模式,用来描述字符串的某种特定模式。这种模式可以用来匹配、查找、替换等操作。正则表达式语法复杂,但是一旦掌握,就能够极大地提高我们的工作效率。
re模块的基本用法
在使用re模块之前,需要先导入它:
import re
匹配
re模块提供了search()和match()函数来进行匹配操作。
search()函数在文本中查找符合正则表达式的第一个位置,并返回一个包含匹配信息的对象,如果没有找到匹配的内容,则返回None。
match()函数在字符串的开始处匹配一个模式,如果不在开始处匹配,就会返回None。与search()函数不同,match()函数只匹配字符串的开始。
下面是search()和match()函数的例子:
import re
text = "Python is a great language. It's easy to learn and powerful."
pattern = "Python"
# 在text中查找以"Python"开头的字符串
result = re.match(pattern, text)
if result:
print("match found: ", result.group())
else:
print("match not found")
# 在text中查找第一个出现的"Python"字符串
result = re.search(pattern, text)
if result:
print("match found: ", result.group())
else:
print("match not found")
匹配规则
正则表达式的匹配规则是由不同的元字符组成的,下面是常用的元字符:
元字符 | 说明 |
---|---|
. | 匹配除了换行符以外的任意字符 |
\w | 匹配任意字母、数字、下划线和汉字 |
\W | 匹配任意不是字母、数字、下划线和汉字的字符 |
\d | 匹配任意数字 |
\D | 匹配任意非数字的字符 |
\s | 匹配任意空白字符,包括空格、制表符、换行符等 |
\S | 匹配任意非空白字符 |
^ | 匹配字符串的开头 |
$ | 匹配字符串的结尾 |
* | 匹配0个或多个在它前面的字符 |
+ | 匹配1个或多个在它前面的字符 |
? | 匹配0个或1个在它前面的字符 |
{n} | 匹配前面的字符恰好出现n次 |
{n,} | 匹配前面的字符至少出现n次 |
{n,m} | 匹配前面的字符至少出现n次,最多出现m次 |
具体用法可以参考下面的例子:
import re
text = "Hello,123,World!谷歌搜索引擎是全球最大的搜索引擎!"
# 查找所有数字
result = re.findall(r"\d+", text)
print(result)
# 查找所有以字母开头的单词
result = re.findall(r"\b\w+", text)
print(result)
# 查找所有以大写字母开头的单词
result = re.findall(r"\b[A-Z]\w*", text)
print(result)
# 查找所有包含"搜索"的句子
result = re.findall(r".*搜索.*?", text)
print(result)
小结
本文介绍了Python中re模块的基本用法,以及正则表达式的匹配规则。作为爬虫技术的重要组成部分,掌握正则表达式是非常必要的。在实际使用中,相信大家会遇到各种复杂的情况,希望本文能够为大家提供一个参考,让大家更加熟练地掌握re模块的使用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python爬虫之re正则表达式库 - Python技术站