将逗号(,)替换为点(.)RegEx php


Replace Comma(,) with Dot(.) RegEx php

我正在尝试这个代码,但我得到了这个错误:No ending delimiter '/' found

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

我不确定regex验证。

Regex只替换一个字符太过分了。为什么不直接这样做呢?

str_replace(',', '.', $form);
$salary = preg_replace('/,/', '.', $form);

但是,是的,您并不是真的想匹配模式,而是匹配constant的字符串。所以只需使用str_replace()

您可以简单地使用

str_replace(',','.',$form);

我不理解您的参数——我不确定字符串中应该包含什么,不包含什么。但对于preg_replace,搜索模式应该是一个字符串,并且该字符串还以分隔符(通常为"/")开头和结尾。我认为当搜索字符串已经在字符串中时,在搜索字符串周围需要斜杠是多余的,但这就是它的工作方式。

第二个参数应该是一个包含句号的字符串,不包含其他内容。这给出:

$salary=preg_replace('/,/','.',$form);

其他人认为str_replace可以将一个字符转换为另一个字符,这是正确的,但如果你想要的替换变得更复杂,那么preg_replace将是合理的。

字符串中的'/'用作正则表达式分隔符的开头,因此需要对其进行转义。正确的行应该是:

$salary = preg_replace('''/',', '.'/', $form);

我也很好奇为什么第二个参数是","。"/"而不是",/"。

编辑

啊,我现在明白了,行应该是:

$salary = preg_replace( '/,/', '.', $form);

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