一、python api
函数 | 描述 |
---|---|
re.match(pattern, string, flags=0) | 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none |
re.search(pattern, string, flags=0) | 扫描整个字符串并返回第一个成功的匹配 |
re.sub(pattern, repl, string, count=0) | 用于替换字符串中的匹配项,repl : 替换的字符串,也可为一个函数 |
re.compile(pattern[, flags]) | 用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用 |
findall(string[, pos[, endpos]]) | 在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表 |
re.split(pattern, string[, maxsplit=0, flags=0]) | 能够匹配的子串将字符串分割后返回列表 |
二、修饰符总结
修饰符 | 描述 |
---|---|
re.I | 使匹配对大小写不敏感 |
re.L | 做本地化识别(locale-aware)匹配 |
re.M | 多行匹配,影响 ^ 和 $ |
re.S | 使 . 匹配包括换行在内的所有字符 |
re.U | 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B. |
re.X | 该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。d |
三、常用的正则
1、匹配email地址:
[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?
2、匹配网址URL:
[a-zA-z]+://[^\s]*
3、匹配18位身份证号:
^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$
4、匹配年月日格式:
([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8])))
5、匹配整数:
^-?[1-9]\d*$
6、匹配正整数:
^[1-9]\d*$
7、匹配负整数:
^-[1-9]\d*$
8、匹配空白行:
\n\s*\r
设定一个用户命名的规则, 让用户名包含字符,数字,下划线和连字符,以及限制字符的个数,好让名字看起来没那么丑. 我们使用以下正则表达式来验证一个用户名:
详细:
https://www.jianshu.com/p/7fa6fe0b39af
https://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html
https://juejin.im/entry/59a651116fb9a024844938b5