python常用正则表达式总结
python开发,经常需要从字符串中提取关键信息,这个提取过程多半使用正则表达式实现,开本文来记录常用的正则表达式,方便日后续用。

| 信息 | 表达式 |
|---|---|
| 非负整数 | ^\d+$ |
| 正整数 | ^[0-9]*[1-9][0-9]*$ |
| 非正整数 | ^((-\d+)|(0+))$ |
| 负整数 | ^-[0-9]*[1-9][0-9]*$ |
| 整数 | ^-?\d+$ |
| 非负浮点数 | ^\d+\.?\d+$ |
| 正浮点数 | ^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)$ |
| 非正浮点数 | ^((-\d+\.\d+)?)|(0+(\.0+)?))$ |
| 负浮点数 | ^(-((正浮点数正则式)))$ |
| 英文字符串 | ^[A-Za-z]+$ |
| 英文大写串 | ^[A-Z]+$ |
| 英文小写串 | ^[a-z]+$ |
| 英文字符数字串 | ^[A-Za-z0-9]+$ |
| 英数字加下划线串 | ^\w+$ |
| E-mail地址 | ^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ |
| URL | ^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$ |
| URL | ^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])* $ |
| 邮政编码 | ^[1-9]\d{5}$ |
| 中文 | ^[\u0391-\uFFE5]+$ |
| 电话号码 | ^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$ |
| 手机号码 | ^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$ |
| 双字节字符(包括汉字在内) | ^\x00-\xff |
| 匹配首尾空格 | (^\s*)|(\s*$)(像vbscript那样的trim函数) |
| 匹配HTML标记 | <(.*)>.*<\/\1>|<(.*)\/> |
| 匹配空行 | \n[\s| ]*\r |
| 提取信息中的网络链接 | (h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)? |
| 提取信息中的邮件地址 | \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* |
| 提取信息中的图片链接 | (s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)? |
| 提取信息中的IP地址 | (\d+)\.(\d+)\.(\d+)\.(\d+) |
| 提取信息中的中国手机号码 | (86)\*0\*13\d{9} |
| 提取信息中的中国固定电话号码 | (\(\d{3,4}\)|\d{3,4}-|\s)?\d{8} |
| 提取信息中的中国电话号码(包括移动和固定电话) | (\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14} |
| 提取信息中的中国邮政编码 | [1-9]{1}(\d+){5} |
| 提取信息中的浮点数(即小数) | (-?\d*)\.?\d+ |
| 提取信息中的任何数字 | (-?\d*)(\.\d+)? |
| IP | (\d+)\.(\d+)\.(\d+)\.(\d+) |
| 电话区号 | /^0\d{2,3}$/ |
| 腾讯QQ号 | ^[1-9]*[1-9][0-9]*$ |
| 帐号(字母开头,允许5-16字节,允许字母数字下划线) | ^[a-zA-Z][a-zA-Z0-9_]{4,15}$ |
| 中文、英文、数字及下划线 | ^[\u4e00-\u9fa5_a-zA-Z0-9]+$ |
| 匹配中文字符的正则表达式 | [\u4e00-\u9fa5] |
| 匹配双字节字符(包括汉字在内) | [^\x00-\xff] |
| 匹配空行的正则表达式 | \n[\s| ]*\r |
| 匹配HTML标记的正则表达式 | /<(.*)>.*<\/\1>|<(.*) \/>/ |
| sql语句 | ^(select|drop|delete|create|update|insert).*$ |
| 匹配首尾空格的正则表达式 | (^\s*)|(\s*$) |
| 匹配Email地址的正则表达式 | \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* |
v1.5.2