MENU

正则收集

November 15, 2018 • Read: 91 • 技术

近期在学习Python,了解了Python的爬虫技术.发现正则还真是很重要,所以恶补了一些正则知识,所以来分享一下学习的笔记.

快乐正则


>^:表示以0开头 | eg: ^0

$:表示以0结束 | eg: 0$

.:表任意字符 | eg: .

*:表示前面一个字符可以出现任意多次 | eg:x*

?:从左边开始,匹配到符合条件 | eg: ?(ff) 则从左边开始匹配第一个ff结束

+:表示+号之前的字符至少出现一次 | eg: (a+) 则匹配内容至少要有一个a

{2}: 出现两次重复 | eg: a{2} 则匹配a出现两次

{2,}: 两次以上 | eg: a{2,} 则匹配2-正无穷多的a

{2,5}: 最少两次,最多五次 | eg: a{2,5} 则匹配至少2个a, 至多5个a

|: eg: (a|b) 匹配内容中有a或者b都可以通过(Ps: 先匹配a,如果匹配则结束)

[]: eg: [abc]匹配abc任意字符, [^123]匹配非123字符, [0-9]匹配0到9区间

\s: 空格 \S: 非空格

\w: 表示 [a-zA-Z0-9_] \W: 除了\w的所有字符

[\u4E00-\u9FA5]: 汉字

非负整数:^\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]+$

匹配双字节字符(包括汉字在内):[^\x00-\xff]

匹配空行的正则表达式:\n[\s| ]*\r

匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/

sql语句:^(select|drop|delete|create|update|insert).*$

匹配首尾空格的正则表达式:(^\s*)|(\s*$)

匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
Last Modified: July 8, 2019