質問

すべての<!> quot; dev <!> quot;をキャッチしたいタグとそれぞれのコンテンツ、php preg_match_all()を使用しますが、ネストされたタグは取得できません。

データ:

<dev>aaa</dev> <dev>bbb</dev> <dev>  ccc <dev>ddd</dev> </dev>

これまでの私の表現:

|<dev>(.*)</dev>|Uis

ご協力ありがとうございます。 b。

役に立ちましたか?

解決

Don <!>#8217; t解析に正規表現を使用します。 DOMDocument または SimpleXML

$xml = simplexml_load_string('<root>'.$str.'</root>');

他のヒント

再帰的な一致パターンが必要です:

/<dev>(.*|(?R))<\/dev>/i

それはネストされた要素を吸い上げるだけなので、それらを解析する場合は、$ matches [1]で関数を再度実行する必要があります

*は貪欲な演算子で、できるだけ多くの文字を消費します。代わりに、最短マッチを見つけるために、貪欲でないバージョン*?を使用する必要があります。おそらく正規表現はこれを行うのに最適なツールではありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top