正则表达式中加号和问号连在一起是什么意思

不加?表示贪婪,加?表示勉强,区别如下:

勉强是从左边一个一个地吃直到匹配为止,不加?的是一口吃掉整个字符串,然后从最后一个一个地吐出来直到匹配为止

字符串
a=====b=====b===

a.*b将匹配满足条件最长的字符串a=====b=====b

工作方式:
首先将:a=====b=====b===全部吃掉,从右边一个一个地吐出来

1.a=====b=====b===不匹配,吐出一字符
2.a=====b=====b==不匹配,再吐出一字符
3.a=====b=====b=不匹配,再吐出一字符
4.a=====b=====b匹配了,结束。如果再不匹配继续吐,直到没有字符了,匹配失败

a.*?将匹配满足条件最短的字符串a=====b

工作方式:
从左边一个一个地吃掉字符
1.a不能匹配表达式,继续吃
2.a=不能匹配表达式,继续吃
3.a==不能匹配表达式,继续吃
4.a===不能匹配表达式,继续吃
5.a====不能匹配表达式,继续吃
6.a=====不能匹配表达式,继续吃
7.a=====b呵呵,终于能匹配表达式了,匹配结束,匹配位置留于字符b后面,继续其他的匹配。如果不能匹配则一个一个地吃掉整个字符串直到吃完为止若还没有匹配则匹配失败。

相关文章

正则替换html代码中img标签的src值在开发富文本信息在移动端...
正则表达式
AWK是一种处理文本文件的语言,是一个强大的文件分析工具。它...
正则表达式是特殊的字符序列,利用事先定义好的特定字符以及...
Python界一名小学生,热心分享编程学习。
收集整理每周优质开发者内容,包括、、等方面。每周五定期发...