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+)* |