正则表达式的.*?,*?和.*和*?之间的区别

正则表达式的.*?,*?和.*和*?之间的区别..................................................................

2个回答

.*?。就是表示匹配任意字符并且尽可能少。
.*是匹配任意字符

比如 abccc,用a.*?c匹配,就是abc,用a.*c匹配就是abccc
*?本身不能构成表达式,要看前面。
比如 a*?,就是a出现0次或者n次,并且尽可能少

尽量少用这类任意匹配,一来速度慢,二来非预期多。
功能解释楼上已经说了,基本没问题
不过 .*?有很多非预期情况,比如 .*?a 理论上是a前面最少的匹配。但是实际上,有可能匹配从字符串开头到第一个a字母为止。
一般万不得已非要用 .*? 最好前导后导都有限定。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问