. 匹配任意一个字符(\n除外)
[] 匹配[]中列举的字符
\b 匹配1个单词的边界
\B 匹配非单词边界
\d 匹配数字,即0-9
\D 匹配非数字,即不是数字
\s 匹配空白,即空格,tab键(\t),\n,\r
\S 匹配非空白
\w 匹配单词字符,即a-z、A-Z、0-9 、_
\W 匹配非单词字符
* 匹配前一个字符出现0次或者无数次,即可有可无
+ 匹配前一个字符出现1次或者无数次,即至少有1次
? 匹配一个字符出现1次或者0次,即要么有一次,要么没有
^ 匹配字符串开头
$ 匹配字符串结尾
| 匹配左右任意一个表达式
(ab) 将括号中的字符作为一个分组
{m} 匹配一个字符出现m次
{m,} 匹配前一个字符至少出现m次
{m,n} 匹配一个字符出现从m到n次
(?P<name>) 分组起别名
(?P=name) 引用别名为name分组匹配到的字符串
------------------------------------------------------------------------------------------
search:在字符串中进行搜索,从左边开始搜索,如果有多个,得到第一个后就停止搜索
findall:得到所有匹配的数据
------------------------------------------------------------------------------------------
题目1:匹配出163的邮箱地址,且@符号钱有4到20位字符,例如[email protected]
----> \w{4,20}@163.com$
题目2:匹配电话号码
----> 1[345789]\d{9}$
题目3:匹配出163、126、qq、gmaol邮箱
----> (\w{4,20})@(163|126|qq|gmail)\.(com|cn|net)$
----> ^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+[\.][a-zA-Z0-9_-]+$