在PHP中,我尝试实现更改字符串:
<img class="alignnone size-medium wp-image-18" src="http://localhost/wp-content/uploads/2015/02/300x149-jquerymobile.jpg" alt="jquerymobile" width="300" height="149">
到此:
<img class="alignnone size-medium wp-image-18" src="" data-path="http://localhost/wp-content/uploads/2015/02/" data-img="300x149-jquerymobile.jpg" alt="jquerymobile" width="300" height="149">
我想要使用
preg_replace('/src="(what-is-a-path-regex)(.*)"/', 'src="" data-path="$1" data-img="$2"', '<img class="alignnone size-medium wp-image-18" src="http://localhost/wp-content/uploads/2015/02/300x149-jquerymobile.jpg" alt="jquerymobile" width="300" height="149">')
什么正则表达式取代“wat-is-a-path-regex”?
答案 0 :(得分:1)
这应该有效:(https?:\/\/.+\/)(.+)
。有一个例子here。
话虽这么说,你应该看看是否可以将这种方法与DOM解析结合起来,这样你就可以先提取你需要的属性。
答案 1 :(得分:1)
您可以尝试下面的内容,
preg_replace('~src="(.*?\/)([^/"]*)"~', 'src="" data-path="\1" data-img="\2"', '<img class="alignnone size-medium wp-image-18" src="http://localhost/wp-content/uploads/2015/02/300x149-jquerymobile.jpg" alt="jquerymobile" width="300" height="149">');
[^/"]*
否定了符合任何字符但不符合"
或/
的字符类,零次或多次。