如何使用Python re模块编写高效的正则表达式进行爬虫?
- 内容介绍
- 文章标签
- 相关推荐
本文共计330个文字,预计阅读时间需要2分钟。
正则表达式 + 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)
本文共计330个文字,预计阅读时间需要2分钟。
正则表达式 + 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)

