我有一个这样的字符串:
xxx<tag1>ABC</tag1>xxxyyyzzz<tag2>MNO</tag2>zzzz<tag1>EFG</tag1>
我需要将其转换为
<tag1>ABC</tag1><tag2>MNO</tag2><tag1>EFG</tag1>
我必须只提取标签及其内部内容。
我搜索regexp删除所有其他内容
$string2 = eregi_replace($reg, $string1)
答案 0 :(得分:1)
$str = "<tag1>ABC</tag1>xxxyyyzzz<tag2>MNO</tag2>zzzz<tag1>EFG</tag1>";
preg_match_all('#<tag[0-9]>(.*?)</tag[0-9]>#i',$str,$result);
print_r($result[0]);
将输出
Array
(
[0] => <tag1>ABC</tag1>
[1] => <tag2>MNO</tag2>
[2] => <tag1>EFG</tag1>
)
答案 1 :(得分:1)
试试这个:
$str = "xxx<tag1>ABC</tag1>xxxyyyzzz<tag2>MNO</tag2>zzzz<tag1>EFG</tag1>";
echo preg_replace('/(.*?)(<tag\d+>)(.*?)<\/tag\d+>(.*?)/','$2$3$4', $str);