Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.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 preg_替换第一个匹配模式包括斜杠_Php_Regex - Fatal编程技术网

Php preg_替换第一个匹配模式包括斜杠

Php preg_替换第一个匹配模式包括斜杠,php,regex,Php,Regex,当字符串内容“/”时如何删除第一个模式匹配 您必须记住,preg_replace的第一个参数是一个RegEx模式,所以您不能只向它传递任何字符串 首先,需要使用函数转义所有正则表达式字符 尝试: 谢谢你的帮助。但这对我来说不是工作。对我来说最有用的是str_replace“/”到其他使用preg_replace ex.(“:”)的字符串。str_将结果的其余部分再次替换回“/”。对不起,我忘了将表达式括在“/”分隔符中。现在修好了。无论如何,当以regex模式处理变量时,应该使用preg_quo

当字符串内容“/”时如何删除第一个模式匹配


您必须记住,preg_replace的第一个参数是一个RegEx模式,所以您不能只向它传递任何字符串

首先,需要使用函数转义所有正则表达式字符

尝试:


谢谢你的帮助。但这对我来说不是工作。对我来说最有用的是str_replace“/”到其他使用preg_replace ex.(“:”)的字符串。str_将结果的其余部分再次替换回“/”。对不起,我忘了将表达式括在“/”分隔符中。现在修好了。无论如何,当以regex模式处理变量时,应该使用preg_quote。另一种方法是,你需要替换每一个特殊的字符,比如。([])等等。preg_quote为您做了这件事。您能展示一下如何使用它以及哪些不起作用吗?这不是你想要的吗?
$a = "abc/def";
$b = "abc/def/ghi/abc/def";

$result = "/ghi/abc/def"; when replace with "abc/def" only look for the fist match


I try this but is not work.
$x  = preg_replace('/'.$a.'/', '', $b, 1);
$a = "abc/def";
$b = "abc/def/ghi/abc/def";

$pattern = preg_quote($a, '/'); // second argument allows us to escape delimiter chars, too

$x  = preg_replace("/$pattern/", '', $b, 1);