$re = '/<([a-z]+) .*=".*">/';
$str = '1|<table attribute="1">
2|<tbody attribute="2">
3|<tr unwanted_attribute="3"><td unwanted_attribute="3"><br unwanted_attribute="3" /></td></tr>
4|<tr unwanted_attribute="3"><td unwanted_attribute="3"><span unwanted_attribute="3"></span></td></tr>
5|</tbody>
6|</table>';
$subst = "<\1>";
$result = preg_replace($re, $subst, $str);
echo "The result of the substitution is ".$result;
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for PHP, please visit: http://php.net/manual/en/ref.pcre.php