日期:2014-05-17  浏览次数:20450 次

如何控制在正则替换时,保留原来的值
$s = <<< TXT
<div id="divPdf1" title="../2005Z/hj05/02135.pdf.htm#page=1" class="downpdf" style="cursor:hand;">1范围</div>
<div id="divPdf2" title="../2006Z/hj06/02136.pdf.txt#page=2" class="downpdf" style="cursor:hand;">2规范性引用文件</div>
<div id="divPdf3" title="../2007Z/hj07/02137.pdf#page=3" class="downpdf" style="cursor:hand;">3单位和定义</div>
TXT;

像上面这种我要改成:
$s = <<< TXT
<div id="divPdf1" title="../2005Z/hj05/02135.pdf#page=1" class="downpdf" style="cursor:hand;">1范围</div>
<div id="divPdf2" title="../2006Z/hj06/02136.pdf#page=2" class="downpdf" style="cursor:hand;">2规范性引用文件</div>
<div id="divPdf3" title="../2007Z/hj07/02137.pdf#page=3" class="downpdf" style="cursor:hand;">3单位和定义</div>
TXT;

就是把有些02135.pdf.htm,02136.pdf.txt这类pdf的后缀去掉

我的想法是替换成空,不知道这个方法好不好,但是其他的值的控制我就不会了


PHP code

$s = ('/<div id="divPdf.*?title="[^#"].pdf[^#"]#page/','/<div id="divPdf.*?title="..$1.pdf#page/',$s);
echo $s;

我是这样写的,不过貌似没有成功


------解决方案--------------------
探讨
楼上正解
如果我想把<div id="divPdf3" title="前面这里加上来确保修改的是<div id = .... pdf 这些行呢.