Heim  >  Artikel  >  Backend-Entwicklung  >  这个匹配为什么错了,正则表达式难题,该如何处理

这个匹配为什么错了,正则表达式难题,该如何处理

WBOY
WBOYOriginal
2016-06-13 13:40:24870Durchsuche

这个匹配为什么错了,,正则表达式难题

$txt="[face='黑体']12345[/face][face='黑体']哈哈[/face]";
$return=preg_match_all("/\[face='(.*)'](.+?)\[\/face]/",$txt,$tar);
echo "

";<br>	print_r($tar);<br>?><br><br>我的匹配的意思是以[face='任意数']  以[/face]结尾的最短字符串。。。<br><br>哪里错了???<br><br>任意数这里好像似乎应该排除[/face]<br><br>Array<br>(<br>     [0] => Array<br>         (<br>             [0] => [face='黑体']12345[/face][face='黑体']哈哈[/face]<br>         )<br><br>     [1] => Array<br>         (<br>             [0] => 黑体']12345[/face][face='黑体<br>         )<br><br>     [2] => Array<br>         (<br>             [0] => 哈哈<br>         )<br><br>)<br><br>结果错了,,匹配的最长的字符串,晕<br><br><font color="#e78608">------解决方案--------------------</font><br>
……/\[face='(.*)']……   =>  ……/\[face='(.*?)']……<br><br>没有?,就是贪婪,结果如你所贴
<br><font color="#e78608">------解决方案--------------------</font><br>/\[face='(.*)'](.+?)\[\/face]/U   加个U也可以。 <div class="clear">
                 
              
              
        
            </div>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn