如何使用正则表达式和PHP格式化数字

时间:2014-11-05 14:39:23

标签: php regex

我正在练习正则表达式。

我试图使用PHP和正则表达式格式化数字。我希望通过使用PHP和正则表达式,在这个格式111,222,333,444或11222333444到11,222,333,444之后,在每个3位数之后添加逗号,如111222333444。

我搜索了很多,但我找不到确切的解决方法。

我知道php(number_format)中有函数来执行此操作,但我想使用正则表达式和PHP来执行此操作,因为我正在学习正则表达式并且正在练习所以我只想使用正则表达式和php。

1 个答案:

答案 0 :(得分:6)

这是一个基于正则表达式的解决方案:

$repl = preg_replace('/(?!^)(?=(?:\d{3})+$)/m', ',', $input);

RegEx Demo

<强>解释

  • (?!^) - 否定前瞻以确保我们不在输入开始
  • (?=(?:\d{3})+$) - 确保当前位置后有3个或更多3个数字集的正面预测
  • 替换只是一个字面上的逗号
  • 链接演示
  • 提供更多说明