$string = '<span style="font-size: 11.5pt; color: #444444; line-height: 160%; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">白</span>
<span lang="EN-US" style="font-size: 11.5pt; color: #444444; line-height: 160%; font-family: "Arial","sans-serif"">黑</span>';$string = preg_replace("/<span (mso|lang)\>(.*?)<\/span>/is","\\2",$string);//这个匹配不到
想要匹配 只要字符串的<span>里包含有mso或lang的就清除,仅保留内容。谢谢
<span lang="EN-US" style="font-size: 11.5pt; color: #444444; line-height: 160%; font-family: "Arial","sans-serif"">黑</span><span>哈哈</span>';//$string = preg_replace("/<span (mso|lang)\>(.*?)<\/span>/is","\\2",$string);//这个匹配不到
$string = preg_replace("/<span [^>]*(mso|lang)[^>]*>([^(<\/)]*)<\/span>/is","\\2",$string);
echo $string;
<span lang="EN-US" class="Apple-style-span" style="font-family: 宋体; line-height: 18px; ">
<span lang="EN-US">最大大赢好来之<span lang="EN-US">-2009</span></span>
</span>
<?php
$string = '<span lang="EN-US" class="Apple-style-span" style="font-family: 宋体; line-height: 18px; ">
<span lang="EN-US">最大大<span style="color:#000;font-size:12px;font-weight:bold;"><div align="center">11</div></span>赢好来之<span lang="EN-US">-2009</span></span>
</span>';
$stringold = '';
$stringnew = $string;
while($stringnew!=$stringold){
$stringold = $stringnew;
$stringnew = preg_replace("/<(span) [^>]*(mso|lang)[^>]*>(.*(?=<\/\\1>))<\/\\1>/is","\\3",$stringold);
}
echo $stringnew;
?>
</xmp>
global $pattern;
if(is_string($a)) {
preg_replace_callback($pattern, "reStr", $a);
exit;
}
$str = $a[1].$a[3].$a[4];
if(preg_match($pattern, $str)) {
preg_replace_callback($pattern, "reStr", $str);
} else {
echo $str;
}
return $str;
}
$pattern = "/(.*?)<span[^<]*(lang|mso)[^>]*>([^<]*)<\/span>(.*)/";
reStr($str);