最近在学python中的re模块 自己打印了一份正则表达式资料,看了一中午的笔记,拿出来和大家分享。
纯文本正则可匹配 i标志 强行不区分大小写
c.t 匹配 cat cbt。。。。 .匹配任意单个字符
..任意两个字符
[ab]只匹配ab
[a-zA-Z0-9]
取色#[a-fA-F0-9][a-fA-F0-9][a-fA-F0-9][a-fA-F0-9][a-fA-F0-9][a-fA-F0-9]
改良取色#[a-fA-F0-9]{6}
[^0-9]非匹配
[0-9]反斜线转义匹配方括号
\d任意数字 \D非数字
\w 等价于[a-zA-Z0-9_] \W非w
匹配邮箱:\w+@\w+.\w+ ok
改良匹配邮箱:[a-zA-Z0-9]\w+@\w+.\w+[a-zA-Z] ok
+匹配一个或多个
*匹配0个到多个
?匹配0个或1个
http://[\w./]+ 匹配网站\s任意空白字符
\x 16 \0 8进制
\b+匹配连续多个字符
(?m)将换行符视为分隔符 将每一行字符串匹配出来
{5}重复五次
{2,4}2-4次
{2,}至少2次贪婪型 * 、+、{123}
懒惰型 *?、+?、{123}?\b单词边界
\B?????????????????
^字符串开头
$字符串结尾(\w+)\1回溯引用
向前查找 .+(?=:)找:前面的东西并且不包含:!!!!
?<=向后查找
(“.://.”)爬取网页 未验证
import requests
import re
r = requests.get(“http://www.baidu.com/s?wd=qqwe%40163.com&rsv_spt=1&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&inputT=5722&rsv_t=c848L7Xor4vFhEoVV9GPzZr2MuYMzFl1%2FETo9cY0rHjXNql5QbkRcKTrFd5hVllmdRaP&rsv_sug3=23&rsv_sug1=14&rsv_sug2=0&rsv_sug4=7428“)
url
res=re.findall(r’(http://.*?)”’,r.text)
color
res=re.findall(r’#[a-fA-F0-9][a-fA-F0-9][a-fA-F0-9][a-fA-F0-9][a-fA-F0-9][a-fA-F0-9]’,r.text)
res=re.findall(r’#[a-fA-F0-9]{6}’,r.text)
res=re.findall(r’[a-zA-Z]\w+@\w+.\w+[a-zA-Z]’,r.text)
print(r.text)
url2
res=re.findall(r’https?://[\w./]+’,r.text)