我正在尝试此代码,但我收到此错误:No ending delimiter '/' found
$form = " 2000,50";
$salary = preg_replace('/',', '.'/', $form); // No ending delimiter '/' found
echo $salary;
我不确定正则表达式验证。
答案 0 :(得分:61)
正则表达式替换只有一个字符有点过分。为什么不这样做呢?
str_replace(',', '.', $form);
答案 1 :(得分:6)
$salary = preg_replace('/,/', '.', $form);
但是,你真的不想匹配一个模式,而是一个常量的字符串,所以只需使用str_replace()
。
答案 2 :(得分:3)
您只需使用
即可str_replace(',','.',$form);
答案 3 :(得分:1)
我不明白你的参数 - 我不确定字符串中应该是什么,什么不是。但对于preg_replace,搜索模式应该是一个字符串,并且字符串也以分隔符开头和结尾(通常为“/”)。我认为当搜索字符串已经在字符串中时,需要对搜索字符串进行斜线缩减,但这就是它的工作方式。
第二个参数应该是一个包含句号的字符串,而不是其他内容。这给出了:
$ salary = preg_replace('/,/','。',$ form);
其他人都认为str_replace可以将一个字符转换成另一个字符,但是如果你想要的替换变得更复杂preg_replace将是合理的。
答案 4 :(得分:0)
字符串中的'/'用作正则表达式分隔符,因此您需要将其转义。正确的行应为:
$salary = preg_replace('\\/',', '.'/', $form);
我也很好奇为什么第二个参数是','。 '/'而不是',/'。
修改
啊,我现在看到,这行应该是:
$salary = preg_replace( '/,/', '.', $form);
我很困惑,因为你的例子中的第一个逗号应该是'。'连接字符串。