如何使用Python re模块编写高效的正则表达式进行爬虫?

2026-06-09 11:277阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计330个文字,预计阅读时间需要2分钟。

如何使用Python re模块编写高效的正则表达式进行爬虫?

正则表达式 + 1. `findall()` 返回的是列表,包含所有匹配的内容 + `lst=re.findall(r\d+, 我的电话号码是:10086 我女朋友的电话是:10010)` + `print(lst)` + 2. `finditer()` 返回的是迭代器,包含所有匹配的对象 + `finditer`


正则表达式

1. findall(返回的是列表)

findall: 匹配字符串中所有的符合正则的内容
lst = re.findall(r"\d+", "我的电话号是:10086 我女朋友的电话是:10010")
print(lst)

2. finditer(返回的是迭代器)

finditer: 匹配字符串中所有的内容[返回的是迭代器], 从迭代器中拿到内容需要.group()
it = re.finditer(r"\d+", "我的电话号是:10086, 我女朋友的电话是:10010")
for i in it:
print(i.group())

3. search

search, 找到一个结果就返回, 返回的结果是match对象. 拿数据需要.group()
s = re.search(r"\d+", "我的电话号是:10086, 我女朋友的电话是:10010")
print(s.group())

4. 预加载正则表达式

obj = re.compile(r"\d+")
ret = obj.finditer("我的电话号是:10086, 我女朋友的电话是:10010")
for it in ret:
print(it.group())

ret = obj.findall("呵呵哒, 我就不信你不换我1000000000")
print(ret)


如何使用Python re模块编写高效的正则表达式进行爬虫?


本文共计330个文字,预计阅读时间需要2分钟。

如何使用Python re模块编写高效的正则表达式进行爬虫?

正则表达式 + 1. `findall()` 返回的是列表,包含所有匹配的内容 + `lst=re.findall(r\d+, 我的电话号码是:10086 我女朋友的电话是:10010)` + `print(lst)` + 2. `finditer()` 返回的是迭代器,包含所有匹配的对象 + `finditer`


正则表达式

1. findall(返回的是列表)

findall: 匹配字符串中所有的符合正则的内容
lst = re.findall(r"\d+", "我的电话号是:10086 我女朋友的电话是:10010")
print(lst)

2. finditer(返回的是迭代器)

finditer: 匹配字符串中所有的内容[返回的是迭代器], 从迭代器中拿到内容需要.group()
it = re.finditer(r"\d+", "我的电话号是:10086, 我女朋友的电话是:10010")
for i in it:
print(i.group())

3. search

search, 找到一个结果就返回, 返回的结果是match对象. 拿数据需要.group()
s = re.search(r"\d+", "我的电话号是:10086, 我女朋友的电话是:10010")
print(s.group())

4. 预加载正则表达式

obj = re.compile(r"\d+")
ret = obj.finditer("我的电话号是:10086, 我女朋友的电话是:10010")
for it in ret:
print(it.group())

ret = obj.findall("呵呵哒, 我就不信你不换我1000000000")
print(ret)


如何使用Python re模块编写高效的正则表达式进行爬虫?