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

Ayy*_*far 0 php regex

我正在练习正则表达式.

我试图使用PHP和正则表达式格式化数字.我想通过使用PHP和正则表达式将这个格式111,222,333,444或11222333444之后的每个3位数字(如此111222333444)添加到11,222,333,444.

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

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

anu*_*ava 6

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

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

RegEx演示

说明:

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