Php 在正则表达式中将结束分隔符放在哪里?
我在regex很糟糕!你们能告诉我在这段代码中把结尾分隔符放在哪里吗Php 在正则表达式中将结束分隔符放在哪里?,php,regex,Php,Regex,我在regex很糟糕!你们能告诉我在这段代码中把结尾分隔符放在哪里吗 $data = preg_replace("/ href=\"\/i", " href=\"{$domain}/", $data); $data = preg_replace("/ src=\"\/i", " href=\"{$domain}/", $data); 语法如下: preg_replace("/PATTERN/FLAGS", "Replace String", $subject); 如您所见,分隔符围绕着一个模
$data = preg_replace("/ href=\"\/i", " href=\"{$domain}/", $data);
$data = preg_replace("/ src=\"\/i", " href=\"{$domain}/", $data);
语法如下:
preg_replace("/PATTERN/FLAGS", "Replace String", $subject);
如您所见,分隔符围绕着一个模式,因此在您的例子中,您的分隔符已经就位
但是,您也在replace string参数中放置了一个分隔符,这是不应该的。您还需要转义字符,如反斜杠\
。因此,正确的形式应该是:
$data = preg_replace("/ href=\"\\/i", " href=\"{$domain}\\", $data);
$data = preg_replace("/ src=\"\\/i", " href=\"{$domain}\\", $data);
该代码将用href=“DOMAIN\
替换href=“DOMAIN\
的任何实例
然而,对于这个特定的替换项,RegEx是不必要的。您可以使用一个简单的str\u replace()
:
我不知道这个正则表达式的目的是什么,你想找什么?你想用什么来代替它?
$data = str_replace('href="\\', "href=\"{$domain}\\", $data);
$data = str_replace('src="\\', "src=\"{$domain}\\", $data);