preg_replace追加匹配的字符

时间:2013-05-16 08:46:37

标签: php regex preg-replace

我正在寻找一种方法将数字转换为可用于表示版本的字符串。

假设我们有

$foo = 123

我希望能够将其转换为$foo = "1.2.3"

到目前为止,我已经尝试了

$foo = 123;
$string = preg_replace("[^0-9]",'$0\.',$foo);

但这似乎没有做任何事情,$string只是回来为空/ null。

我做错了什么?

4 个答案:

答案 0 :(得分:2)

你可以这样做,(documentation):

$string = wordwrap($foo, 1, '.', true); 

答案 1 :(得分:0)

只需使用str_split(),然后使用join()

join('.', str_split($foo));

答案 2 :(得分:0)

你说它已经是数字了。

$foo = 123;
echo implode('.', str_split($foo));

答案 3 :(得分:0)

^表示NOT ie [^ 0-9]表示不在0123456789

中的任何内容

您还需要使用/(其他字符可用)来划分搜索 这允许你使用修饰符(你可以查看)

您不需要转义替换字符,因为它不是REGEX模式

$foo = 123;
$string = preg_replace("/[0-9]/",'$0.',$foo);

您是否在php手册中查看了preg_replace()的示例? http://php.net/manual/en/function.preg-replace.php