如何使用正则表达式和PHP格式化数字
我在练习正则表达式 我试图用PHP和正则表达式格式化数字。我想通过使用PHP和正则表达式在11122233444或11222333444到11222333444之间的格式11122233444或11222333444的每3个数字后面添加逗号 我找了很多,但找不到这个问题的确切答案如何使用正则表达式和PHP格式化数字,php,regex,Php,Regex,我在练习正则表达式 我试图用PHP和正则表达式格式化数字。我想通过使用PHP和正则表达式在11122233444或11222333444到11222333444之间的格式11122233444或11222333444的每3个数字后面添加逗号 我找了很多,但找不到这个问题的确切答案 我知道php(number_格式)中有函数可以实现这一点,但我想使用正则表达式和php来实现这一点,因为我正在学习正则表达式并进行练习,所以我只想使用正则表达式和php。这里有一个基于正则表达式的解决方案: $repl
我知道php(number_格式)中有函数可以实现这一点,但我想使用正则表达式和php来实现这一点,因为我正在学习正则表达式并进行练习,所以我只想使用正则表达式和php。这里有一个基于正则表达式的解决方案:
$repl = preg_replace('/(?!^)(?=(?:\d{3})+$)/m', ',', $input);
说明:
-负前瞻,以确保我们不在输入的开始(?!^)
-正向前瞻,以确保当前位置后有1个或多个3位数集(?=(?:\d{3})+$)
- 替换只是一个字面上的逗号
- 更多的解释可以在链接的演示中找到
- 以下是一个基于正则表达式的解决方案:
$repl = preg_replace('/(?!^)(?=(?:\d{3})+$)/m', ',', $input);
说明:
-负前瞻,以确保我们不在输入的开始(?!^)
-正向前瞻,以确保当前位置后有1个或多个3位数集(?=(?:\d{3})+$)
- 替换只是一个字面上的逗号
- 更多的解释可以在链接的演示中找到
(?!^)111
将变成,111
你能解释一下吗?如果OP的目标是学习它们,我认为在这里获得细节可能会很好。不管怎么说,捕获得很好,+1。非常感谢,这就是我需要的。当然可以添加解释(在执行此操作时收到了一个调用)@AlainTiemblo:正则表达式使用前瞻查找字符串中的位置,其中右边唯一的东西是三个数字的一个或多个分组。@AmalMurali:不带(?!^)111
将变成,111