0

私はいくつかのテキストを置き換える必要があります。そのためには正規表現パターンが必要です。ここにテキストがあります:

<div CLASS="CHAP_BM_CON">Outer <div CLASS="CHAP_BM_FIRST">DIV inner</div> 
Outer ends here</div><div CLASS="CHAP_BM_FIRST">Separate DIV Even inner</div>

上記の段落では、ネストされた 1 つの DIV を見ることができます。次のような以下の出力を満たすには、正規表現パターンが必要です。

<div CLASS="CHAP_BM_CON">Outer <div CLASS="CHAP_BM_FIRST">DIV inner <!--CHAP_BM_FIRST--></div> 
Outer ends here<!--CHAP_BM_CON--></div><div CLASS="CHAP_BM_FIRST">Separate DIV Even     inner<!--CHAP_BM_FIRST--></div>

この場合の正規表現はどのように書けばよいでしょうか?

4

1 に答える 1

0

以下のコードを試しました..

<?php
function parseTagsRecursive($input)
{

 $regex = '/<div tagname="(.*?)" (.*?)>(.*?)<\/div>/si';    
if (is_array($input)) {

    $input = '<div tagname='.$input[1].' '.$input[2].'>'.$input[3].'<!--'.$input[1].'--></div>';

}   

return preg_replace_callback($regex, 'parseTagsRecursive', $input);

}

$content = '<div CLASS="CHAP_BM_CON">Outer <div CLASS="CHAP_BM_FIRST">DIV inner</div> 
Outer ends here</div><div CLASS="CHAP_BM_FIRST">Separate DIV Even inner</div';


echo $ver = parseTagsRecursive($content);
于 2012-08-06T10:59:18.270 に答える