正则表达式(.*?)(.+?)惰性匹配

Posted kreios

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式(.*?)(.+?)惰性匹配相关的知识,希望对你有一定的参考价值。

看了挺多博客,终于弄懂了,现在整理一下:

.         匹配任意除换行符“ ”外的字符
*         匹配前面的字符0次或多次
+        匹配前面的字符1次或多次
?        匹配前面的子表达式零次或一次,或指明一个非贪婪限定符
.*        匹配任意除换行符“ ”外的字符0次或多次
.+       匹配任意除换行符“ ”外的字符1次或多次
.*?    匹配任意除换行符“ ”外的字符0次或多次,但尽可能少重复
.+?   匹配任意除换行符“ ”外的字符0次或多次,但尽可能少重复
此处?的作用就是指明一个非贪婪限定符,什么叫尽可能少重复?简单点说就是匹配最短的符合要求的表达式,下面举出例子:

 re.match(ra.*b, aababa) # 1 

 re.match(ra.*?b, aababa) # 2 

1式没有非贪婪限定符,匹配最长表达式,结果为aabab
2式有非贪婪限定符,尽可能少重复,结果为aab和ab

  re.match(ra.+?b, aababa) # 3  

同理.+?也一样,只是不包括匹配0次的情况,所以3式结果为aab,再比如:

 re.match(rhello.*?world, xxxhelloworldxxhelloxxworld # 4 
4式的结果显而易见:helloworld和helloxxworld

以上是关于正则表达式(.*?)(.+?)惰性匹配的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式(.*?)惰性匹配()

正则表达式(.*?)惰性匹配()

正则表达式(.*?)惰性匹配()

JavaScript正则表达式模式匹配——贪婪模式和惰性模式

python爬虫 正则表达式 re.finditer 元字符 贪婪匹配 惰性匹配

正则表达式