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?/
将匹配/
。