用逗号(。)RegEx php替换逗号(,)

时间:2011-06-14 16:42:00

标签: php regex

我正在尝试此代码,但我收到此错误:No ending delimiter '/' found

$form = " 2000,50";
$salary = preg_replace('/',', '.'/', $form); // No ending delimiter '/' found 
echo $salary;

我不确定正则表达式验证。

5 个答案:

答案 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);

我很困惑,因为你的例子中的第一个逗号应该是'。'连接字符串。