正则表达式的.*?,*?和.*和*?之间的区别..................................................................
.*?。就是表示匹配任意字符并且尽可能少。
.*是匹配任意字符
比如 abccc,用a.*?c匹配,就是abc,用a.*c匹配就是abccc
*?本身不能构成表达式,要看前面。
比如 a*?,就是a出现0次或者n次,并且尽可能少
尽量少用这类任意匹配,一来速度慢,二来非预期多。
功能解释楼上已经说了,基本没问题
不过 .*?
有很多非预期情况,比如 .*?a
理论上是a前面最少的匹配。但是实际上,有可能匹配从字符串开头到第一个a字母为止。
一般万不得已非要用 .*?
最好前导后导都有限定。