正则表达式

  1. re --- 正则表达式操作
  2. Python正则表达式前向/后向搜索的肯定/否定模式的区别和示例
一、 基本参数使用
.  匹配除换行符外的任意字符,flag指定re.DOTALL时换行符也匹配

^  匹配字符串开头,指定re.MULTILINE后可匹配换行后的首个符号

$  匹配字符串结尾,指定re.MULTILINE后可匹配换行前的首个符号

*  匹配前面正则表达式任意次,尽可能多地匹配(贪婪模式)

+  匹配前面正则表达式1次以上,尽可能多地匹配(贪婪模式)

? 匹配前面正则表达式0或1次,尽可能多地匹配(贪婪模式)

{m}  匹配前面正则表达式m次

{m,n}  匹配前面正则表达式m到n次,尽可能多地匹配(贪婪模式)

*?|+?|??|{m,n}?  对上述4种匹配尽可能少地匹配(非贪婪模式)

[]  匹配集合中任意一个字符,^可用于不匹配,-用于选取范围

()  匹配组合中任意一种模式,|用于分隔不同模式,模式可用\1之类的数字再次匹配

(?P…)  给组合命名

(?P=name)  捕获命名的组合

(?#…)  注释

(?=…)  匹配组合,但是不捕获,无法在后面引用

(?=exp)  匹配exp前面的,Isaac (?=Asimov)  只有后面是 'Asimov' 的时候才匹配 'Isaac ' 。

(?!exp) 不匹配exp前面的 ,Isaac (?!Asimov) 只有后面 不 是 'Asimov' 的时候才匹配 'Isaac ' 。

(?<=exp)  匹配exp后面的,(?<=Isaac) Asimov 只有前面是 'Isaac' 的时候才匹配 'Asimov'。

(?
二、 几个例子

1. 匹配邮件地址

 (<)?(\w+@\w+(?:\.\w+)+)(?(1)>|$) 

2. notepad++替换去重

^(.*?)$\s+?^(?=.*^\1$)

3. 判断质数

^.?$|^(..+?)\1+$

你可能感兴趣的:(正则表达式)