困惑求解答
<?php
$subject = "abdef";
$pattern = '/a(.?*)d/';
preg_match($pattern, $subject, $matches);
print_r($matches);
請問$pattern = '/a(.*?)d/';能匹配為什么$pattern = '/a(.?*)d/';就匹配不了呢?
當ad之間只有一個b時?可以匹配到b然后*是匹配0或者1次那他不匹配不就可以了???
而$pattern = '/a(.?.*)d/';這樣又可以實在是不懂了,求高手們指點
2017-12-22
.*? 中 .表示匹配任意字符(除換行符),*表示0或多次,合在一起就是匹配全字符,而?(0或1次) 則是非貪婪匹配,他一找到符合的就匹配。比如說abdeedf 他匹配的是abd 而不是abdeed 因為是懶惰模式
而.?* .?本來就是0或一次了 你加個*還不如直接.*呢。。而且這樣好像會出錯,具體我也不懂。
.?.*就很明顯了 .?是0或1次,.*是0或多次 可以匹配
2017-12-07
高手都不會來看教程了,都出師了,希望有老師能看到吧,正則比較復雜,我反正一直就沒有搞懂過