Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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_replace';//';与'/';_Php_Regex_String_Preg Replace_Str Replace - Fatal编程技术网

PHP preg_replace';//';与'/';

PHP preg_replace';//';与'/';,php,regex,string,preg-replace,str-replace,Php,Regex,String,Preg Replace,Str Replace,我试图用'/'替换字符串中出现的所有'/'。但是,我似乎找不到与要替换的字符串匹配的正确正则表达式 目前,我有preg\u replace('/\/\s\/','/',$string)但这不会替换任何出现的'/' 为了清楚起见,我想匹配任何出现的正斜杠后跟空格再后跟正斜杠的情况。似乎最后一个正斜杠把事情搞砸了。我还尝试了str_replace(),但没有成功 编辑: 如果我在如下字符串上运行正则表达式,则它可以正常工作: echo(preg\u replace('/\/\s?\//m'、'/'、

我试图用
'/'
替换字符串中出现的所有
'/'
。但是,我似乎找不到与要替换的字符串匹配的正确正则表达式

目前,我有
preg\u replace('/\/\s\/','/',$string)但这不会替换任何出现的
'/'

为了清楚起见,我想匹配任何出现的正斜杠后跟空格再后跟正斜杠的情况。似乎最后一个正斜杠把事情搞砸了。我还尝试了
str_replace()
,但没有成功

编辑: 如果我在如下字符串上运行正则表达式,则它可以正常工作:
echo(preg\u replace('/\/\s?\//m'、'/'、“..-..-/..-”)…--/---。但当我这样运行它时:
$morse=preg\u replace('/\/\s?\//m','/',$morse)更换不起作用。对于记录,preg_replace之前的
echo($morse)
输出为
..-/---和之后是完全相同的。我不知道是什么导致了这个,$morse变量字符串中的某种奇怪编码


请帮帮我,这快把我逼疯了。提前谢谢

您编写的正则表达式模式是正确的,如果找到出现的
/
,它将被替换。我将您的
模式更新为
/\/\s?\//m
。你可以用下面的方法

$re = '/\/\s?\//m';
$str = 'test string // test string / /';
$subst = '/';

$result = preg_replace($re, $subst, $str);

echo "The result of the substitution is ".$result;

使用其他分隔符将大大简化此处的操作:

$regex = '~/\s+/~';
$replacement = '/';

$string = preg_replace($regex, $replacement, $original_string);

请注意,您的原始字符串保持不变。

不清楚为什么这不起作用。也许您误判了输入字符串?如果你想要一个有用的答案,你的源$string的一个真实的示例是有意义的。对我来说,它工作得很好。在这里检查它是否是一个普通的空格,它看起来总是一样的,你不需要正则表达式。只需执行:
$string=str_replace(“/”、“/”、$string)“回波($morse)
”的输出仍然不足以进行诊断。你从未提到它的来源或背景。首先,使用var_dump()或提供并排的普通/hextump。如果您是通过浏览器窗口(=html上下文)查看此内容,那么如果间距是单个空格字符、nbsp或中间的换行符,您将不会更明智。如果查看查看源代码或在CLI上运行代码没有发现问题的根源,请再次更新您的问题。使用代码块(非内联代码)来显示原始字符串。(还可以编辑掉“请帮助”部分中被巧妙删除的部分)。OP明确表示他们希望
/
之间有空格<代码>/\s?/
将匹配
/