Python正则表达式相关

时间:2021-11-05 02:08:24

IP地址的正则表达式
(\d{1,3}\.){3}\d{1,3}
邮箱验证的正则表达式
^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$

\n   匹配一个换行符
\s   匹配任何空白字符,等价于 [\t\n\r\f].
\S   匹配任意非空字符
\d   匹配任意数字,等价于 [0-9].
\D   匹配任意非数字
\w   匹配字母数字及下划线
\W   匹配非字母数字及下划线

*    匹配前面的子表达式(零次)或(多次)。要匹配 * 字符,请使用 \*。
+    匹配前面的子表达式(一次)或(多次)。要匹配 + 字符,请使用 \+。
?    匹配前面的子表达式(零次)或(一次),或指明一个非贪婪限定符。

a| b   匹配a或b

^    匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 \^。
[...] 用来表示一组字符,单独列出:[amk] 匹配 'a','m'或'k'
[^...] 不在[]中的字符:[^abc] 匹配除了a,b,c之外的字符。

{n}  n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配"food" 中的两个 o。
{n,} n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配"foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。
{n,m}m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配"fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。

a.*?b  匹配最短的,以a开始,以b结束的字符串
a.*b   它将会匹配最长的以a开始,以b结束的字符串

re.I  使匹配对大小写不敏感
re.M  多行匹配,影响 ^ 和 $
re.S  使 . 匹配包括换行在内的所有字符

match函数  
尝试从字符串的(起始位置)匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none
search函数
扫描整个字符串并返回(第一个)成功的匹配。
区别:re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;re.search匹配整个字符串,直到找到一个匹配。
相同:输出结果都是一个