我试图用var td=$(this);
....
success: function(data) {
td.parents().find('td .product_list').html(data);
td.parents().find('td .product_list').fadeIn();
}
替换字符串中所有出现的'/ /'
。但是,我似乎找不到正确的正则表达式表达式来匹配要替换的字符串。
当前,我有'/'
,但这不能代替任何出现的preg_replace('/\/\s\//', '/', $string);
。
需要明确的是,我想匹配任何出现的正斜杠,后跟空格和正斜杠的情况。似乎最后一个正斜杠弄乱了事情。我也尝试过'/ /'
,但无济于事。
编辑:
如果我在像这样的字符串上运行正则表达式,则可以正常工作:
str_replace()
,我得到的输出是:echo(preg_replace('/\/\s?\//m', '/', ".... . -.-- / / .... ---"));
。但是当我这样运行它时:
.... . -.-- / .... ---
替换无效。为了便于记录,在preg_replace之前$morse = preg_replace('/\/\s?\//m', '/', $morse);
的输出是echo($morse)
,之后是完全相同的。我不知道是什么原因造成的,$ morse变量字符串中某种奇怪的编码?
请帮助,这使我发疯。预先感谢!
答案 0 :(得分:0)
您编写的正则表达式模式是正确的,如果找到/ /
,则它将替换。我已将您的pattern
更新为/\/\s?\//m
。您可以通过以下方式try。
$re = '/\/\s?\//m';
$str = 'test string // test string / /';
$subst = '/';
$result = preg_replace($re, $subst, $str);
echo "The result of the substitution is ".$result;
答案 1 :(得分:0)
使用其他定界符将极大地简化以下内容:
$regex = '~/\s+/~';
$replacement = '/';
$string = preg_replace($regex, $replacement, $original_string);
请注意,原始字符串保持不变。