现在使用preg_replace('/(value=)"(http.+?([^\/]+))"/is', '$1"$3"', $str);可以替换大部分链接了,
不过类似这样的<param name="url" value="http://localhost:8080/.../.../.../VLS_B1U1P2C1AB.wmv" />
不知道为什么替换不了,感觉没什么不一样。再是'$1"$3"'是代表什么意思呀,多谢

解决方案 »

  1.   

    可以替换,替换后变成这样<param name="url" value="VLS_B1U1P2C1AB.wmv" />
    至于$1$3是什么意思,这可以说是一个引用,引用前面你括号匹配的字符串,$0代表你匹配的整个字符串$1代表你用第一个括号匹配的字符串,在此处代表<value=>,而$3则代表的是你用第三个括号匹配的正则,在此处代表的是([^\/]+)
      

  2.   


    向后引用
    $1代表第一个括号的 value=
    $3代表第三个括号的 [^\/]+ 即你需要的内容