正则表达式,量词是匹配优先的,也就是说,量词会尽量地吃,直到由于吃得太多,导致后面没法匹配,才吐出来一个。
举例来说,文本ab1cd2,正则表达式 .*[0-9]
匹配过程:*一直吃到2,发现坏了,数字没法匹配了,于是突出2,匹配成功,结束。也就是说.*匹配了ab1cd
如果我想让.*[0-9]匹配ab1cd2两次,怎么办?
忽略量词优先,.*?[0-9],量词后面加一个问号。也就是说,让*尽量地少吃。
匹配过程:*不吃,不吃不行啊,a不能匹配数字,于是吃下a,b不能匹配数字,于是再吃下b,1匹配数字,结束。开始下一个匹配。