php preg_replace返回null

Nik*_*eni 1 php regex

我很确定这是我的一些愚蠢错误,但我无法调试错误在哪里.

我正在尝试使用此正则表达式更改html文件中的图像路径.它应该工作,但preg_replace只是一次又一次地返回null.

preg_replace("(src=){1}([\"']){1}(.*)([\/]+)(.*[\"']{1})", '/my/path'.$5 , $source);
Run Code Online (Sandbox Code Playgroud)

有人愿意伸出援助之手吗?

Ann*_*rom 6

这里有很多事情要做.

  1. /(src=){1}/ 是相同的 /src=/
  2. .* 可能没有做你期望的,因为它匹配一个空字符串(并设置为贪婪)
  3. 你正在连接$5一个字符串,但不会在PHP中设置$ 5; 你可能意味着'/ my/path $ 5'

实际上,如果您尝试src从HTML(或XML)标记中提取属性,那么您应该使用DOM.请参阅此评论.