[^()]+|(?R))*)/",$string,$matches)) { echo ""; print_"/> [^()]+|(?R))*)/",$string,$matches)) { echo ""; print_">

Heim >Backend-Entwicklung >PHP-Tutorial >嵌套正则写法,该怎么解决

嵌套正则写法,该怎么解决

WBOY
WBOYOriginal
2016-06-13 10:53:06843Durchsuche

嵌套正则写法

PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->$string = "some text (a(b(c)d)e) more text"; if(preg_match("/\((?>[^()]+|(?R))*\)/",$string,$matches)) { echo "<pre class="brush:php;toolbar:false">"; print_r($matches); echo "
"; }

上面是网上找到的嵌套正则写法,把string改成:
$string = 'some text
cd
e
more text';

改成这样后,正则规则我换不过来了,亲大虾帮忙改一下。

最好能做到个数不确定的嵌套匹配

------解决方案--------------------
PHP code
<?php $string = 'some text <tag:cate name="a">a<cate name="b">b<cate>c</cate>d</cate>e more text';preg_match("/<cate name='\"\w+\")?'>(?>\w+|(?R))*/",$string,$matches) &&    print_r($matches);<div class="clear">
                 
              
              
        
            </div></cate>
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
Vorheriger Artikel:php中运用svn_checkoutNächster Artikel:服务器响应慢解决方法