本意是希望得到由 /+// 打头的数据,即
/+// 打头,后面接任何数据,但后面不能连着 /+//
$string ='/+//4IsvMoKUhxgOl9AEU2hPkg=/+//9FW+E1jqvrhTXNYXk03DjQ/+//JwpOTAv4fVpEiH2rYjwV0w==';
$pattern = '/(\/\+\/\/.+?(?!\/\+\/\/))/';
if(preg_match_all($pattern, $string, $matches )) {
print_r($matches[0]);
}
php不懂。给个js的示例
解释:
(?<=abc)
:以abc
开头,但不匹配abc.所以(?<=(\/\+\/\/))
,即以/+//
打头并分组()
,这里的分组后面会用到.*?
:惰性匹配,emm就是说匹配到一个满足的就完成了步继续往后匹配(?=abc)
:匹配以abc
结尾,但是不匹配abc
;\1
:分组引用,前面我们对/+//
进行了一次分组,这里就不必再写一次转义的东西了,直接\1
引用第一个分组即可。所以(?=\1|$)
: 匹配以/+//
结尾或直接结尾的.最后得到:
/(?<=(\/\+\/\/)).*?(?=\1|$)/g
(g修饰符用来全局匹配,以得到多个结果,如果只要一个就不加g修饰符);希望能帮到你,不足之处望指出。