一些基本用法:记录一下,以备不时之需
字符匹配:
1:普通字符。大多数字母和字符一般都会和自身匹配
2:元字符:
. 任意一个字符(换行符除外)
^ 匹配行首,放在要匹配字符串头部 r = r"^hello"
$ 匹配行尾,放在字符串尾部 r = r"hello$"
[]常用来指定一个字符集[abc],[a-z],表示匹配其中任意一个字符即可,元字符在
字符集中不起作用,在[]中出现^,写在开始处,表示补集匹配
\ 将元字符转义成普通字符,也可以后面加不同的字符以表示不同的特殊意义
\d ---[0-9]
\D----[^0-9]
\w----匹配任意字母数字[a-zA-Z0-9]
\W----[^a-zA-Z0-9]
与重复相关:
* 匹配前一个字符0次或更多次 r="ab*", a,ab,abbbb.
+ 匹配前一个字符一次或者多次
?匹配前一个字符0次或一次。
贪婪模式 r = "ab+" re.findall(r,"abbbbb"),默认返回abbbbb 最大匹配
非贪婪模式 r = "ab+?" re.findadd(r,"abbbbb"),返回ab. 最小匹配
{m,n} 至少m次,至多n次.
{0,} == * {1,} == + {0,1} == ?
分组:
email = "\w{3}@\w+(\.com)"
re.findall(email,"www@ds.com") 加上()只返回.com
()也可用于分组(\.com|\.cn)表示匹配.com或.cn
re模式还有一些参数可以指定。(re.I表示不区分大小写等,需要时上网查询即可)