python常用正则表达式总结

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

20180911153665750929978.png

信息 表达式
非负整数 ^\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+)*

参考

python:常用的正则表达式总结