python正则表达式re模块的简单使用

Posted 圆觉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python正则表达式re模块的简单使用相关的知识,希望对你有一定的参考价值。

正则表达式无论是提取数据还是在做爬虫的时候都会经常使用,下面说下re模块的常见使用。

re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。

函数语法

re.match(pattern, string, flags=0)
import re

# todo re.match的用法,从字符串第一个开始匹配
content = \'Hello 123 4567 World_this a regex demo\'
# ^todo 匹配字符串开头,$匹配字符串结尾
result = re.match(\'^Hello\\s\\d{3}\\s\\d{4}\\s\\w{10}.*demo$\',content)
print(result)
# todo 返回匹配范围
print(result.span())
# todo 返回匹配结果
print(result.group())

# todo 泛匹配
result = re.match(\'^Hello.*demo$\',content)
print(result.group())

# todo 匹配指定目标
result = re.match(\'^Hello\\s(\\d+)\\s(\\d+)\\sWorld.*demo$\',content)
print(result.group(1),result.group(2))

# todo 贪婪匹配,尽可能匹配多的字符
result = re.match(\'^He.*(\\d+).*demo$\',content)
print(result.group(1))

# todo .*?非贪婪匹配,尽可能匹配少的字符
result = re.match(\'^He.*?(\\d+).*demo$\',content)
print(result.group(1))

contents = \'\'\'Hello 1234567 World_this 
is a regex demo\'\'\'

# todo 匹配模式,re.S匹配换行
results = re.match(\'^He.*?(\\d+).*?demo$\',contents,re.S)
print(results.group(1))

# todo 转义\\,匹配特殊字符需要加转义符\\
content = \'price is $5.00\'
result = re.match(\'price is \\$5\\.00\',content)
print(result)

re.search 扫描整个字符串并返回第一个成功的匹配。

函数语法:

re.search(pattern, string, flags=0)

\'\'\'绝世唐门小说链接匹配\'\'\'
import re
import requests


resp = requests.get(\'http://www.jueshitangmen.info\').text
print(resp)

# todo 获取.css结尾的链接
pattern = \'<link.*?href="(http:.*?.css)"\\s\\/>\'
css = re.search(pattern,resp,re.S)
print(css.group(1))

re.findall

在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。

\'\'\'绝世唐门链接匹配\'\'\'
import re
import requests


resp = requests.get(\'http://www.jueshitangmen.info\').text
print(resp)

# todo 获取所有以.html结尾的链接
pattern = \'<li>.*?\\shref="(http:.*?.html)"\\srel\'
html_link = re.findall(pattern,resp,re.S)
print(html_link)
for i in html_link:
    print(i)

单个字符串匹配:

多个字符串匹配:

 

匹配分组:

 

常见匹配模式:

以上是关于python正则表达式re模块的简单使用的主要内容,如果未能解决你的问题,请参考以下文章

python正则表达式re模块的简单使用

python成长之路第三篇_正则表达式

python成长之路第三篇_正则表达式

python基础学习(十三)

python基础学习笔记(十三)

第43天python学习re模块学习