Python-语法学习-{正则表达式}

测试网站

限定符(quantifier)

?

表示前的一个字符可有可无
Python-语法学习-{正则表达式}_第1张图片

* 可以匹配0个或多个字符

表示*前的字符可以出现0次或多次
Python-语法学习-{正则表达式}_第2张图片

+ 可以匹配一个以上字符

Python-语法学习-{正则表达式}_第3张图片

{} 限定范围和次数

{6}限定为6个
Python-语法学习-{正则表达式}_第4张图片
{2,6}限定为2到6之间
Python-语法学习-{正则表达式}_第5张图片
{2,} 表示出现两次以上

多字符限定

如果想匹配ab,使用(ab)
Python-语法学习-{正则表达式}_第6张图片

或运算符(or operator)

如果我们想匹配a cat或者a dog
Python-语法学习-{正则表达式}_第7张图片

字符类(character class)

[abc]+,方括号里的内容要求要匹配的字符只能取自里面
Python-语法学习-{正则表达式}_第8张图片
同时可以指定范围,[a-z]+,[a-zA-Z]+,[a-zA-Z0-9]+分别代表小写英文,全部英文,英文+数字

^ 代表排他性

表示匹配除了^后的字符以外的其他字符
Python-语法学习-{正则表达式}_第9张图片

元字符(Meta-characters)

Mc 含义
\d 0-9
\w 单词字符
\s 空白符,包括Tab和换行
\D 非数字字符
\W 非单词字符
\S 非空白字符
. 代表除了换行符外的任意字符

^ 匹配行首

Python-语法学习-{正则表达式}_第10张图片

$ 匹配行尾Python-语法学习-{正则表达式}_第11张图片

贪欲与懒惰匹配(Greedy vs Lazy Match)

Python-语法学习-{正则表达式}_第12张图片
想匹配结果将中间的内容全匹配了,.+会匹配尽可能多的字符,解决办法是<.+?>,会将贪婪匹配转换成懒惰匹配

实例一

RGB颜色匹配,\b表示字符边界
Python-语法学习-{正则表达式}_第13张图片

实例二

匹配IPv4地址,\. 表示 .的转义
Python-语法学习-{正则表达式}_第14张图片
但是256超过了255,采用25[0-5]|2[0-4]\d|[01]?\d\d?
Python-语法学习-{正则表达式}_第15张图片
其中25[0-5]表示250-255,2[0-4]\d表示200-249,[01]?\d\d?由于加了?表示可有可无,表示0-199。
最终\b((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)\b
Python-语法学习-{正则表达式}_第16张图片

你可能感兴趣的:(python,正则表达式,python,自然语言处理)