用正则表达式替换引号

时间:2012-01-25 19:24:23

标签: php regex

我有一组页面源代码,其中包含诸如的元素 <p class='style1'><p class=3DMsoNormal><span style=3D'font-size:12.0pt'><p class=3DMsoNormal> 但我想尝试用所有源代码中的双引号替换所有单引号和那些没有引号接收双引号的单引号 <p class=3DMsoNormal并从拥有它的所有人那里删除文本“3D”。 以下是我试过的一系列功能无效。有人可以帮我找到解决方案吗?感谢

<?php

// test files holds the source code
$html_part = file_get_contents('testRegex.html');

$cSeq = "/(.*)='(.*)'/";    //code sequence
$nSeq = "/(.*)="."(.*)"."/";        //new sequence

preg_match_all($cSeq, $html_part, $matches);
preg_replace($cSeq, $nSeq, $html_part);

echo $html_part;
?>

3 个答案:

答案 0 :(得分:1)

我不确定这个正则表达式是否可行。

也许考虑使用解析器来读取文件,并将其写回/美化它。

我过去曾使用Beautiful Soup

答案 1 :(得分:0)

preg_replace("/(.*)?='(.*)?'/","\\1=\"\\2\"",$str)

您需要使用反向引用http://www.regular-expressions.info/brackets.html

答案 2 :(得分:0)

您可能需要查看quoted_printable_decode(),而不是手动删除“3D”。