$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的后缀去掉我的想法是替换成空,不知道这个方法好不好,但是其他的值的控制我就不会了$s = ('/<div id="divPdf.*?title="[^#"].pdf[^#"]#page/','/<div id="divPdf.*?title="..$1.pdf#page/',$s);
echo $s;
我是这样写的,不过貌似没有成功

解决方案 »

  1.   

    $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;echo preg_replace('/(?<=pdf)\.\w+?(?=#page=)/i','',$s);
      

  2.   

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

  3.   

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