Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在正则表达式中将结束分隔符放在哪里?_Php_Regex - Fatal编程技术网

Php 在正则表达式中将结束分隔符放在哪里?

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); 如您所见,分隔符围绕着一个模

我在regex很糟糕!你们能告诉我在这段代码中把结尾分隔符放在哪里吗

$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);