[^()]+|(?R))*)/",$string,$matches)) { echo ""; print_"/> [^()]+|(?R))*)/",$string,$matches)) { echo ""; print_">
ホームページ > バックエンド開発 > PHPチュートリアル > 嵌套正则写法,该怎么解决

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

WBOY
リリース: 2016-06-13 10:53:06
オリジナル
848 人が閲覧しました

嵌套正则写法

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>
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート