JavaScript 或 Notepad++ 正则表达式向任意文本添加千位分隔符

标签 javascript regex notepad++

作为可视化的一部分,我想向字符串中的任何数字(连续的数字串)添加数千个分隔符。它不需要考虑数字的上下文,例如

1234e+56789 Nokia 3210s cost $123456.7890 and my phone number is 123-4567-89012.

变成了

1,234e+56,789 Nokia 3,210s cost $123,456.7,890 and my phone number is 123-4,567-89,012.

我知道我可以反转字符串,用 $&, 替换 \d{3}(?=\d) 并再次反转它,但是有没有仅使用正则表达式(最好只有一个)来做到这一点的方法?

最佳答案

这与您的尝试几乎相同,只是相反并带有量词:

\d(?=(?:\d{3})+(?!\d))

并将其替换为 $&,

(?:\d{3})+ 确保后面有 3 位数字的倍数,然后 (?!\d) 确保后面没有第四或第五位数字。

如果您想在 Notepad++ 中使用它,请确保升级到版本 6。

请注意,在 Notepad++ 中,您还可以使用lookbehind:

(?<=\d)(?=(?:\d{3})+(?!\d))

并将其替换为 ,

关于JavaScript 或 Notepad++ 正则表达式向任意文本添加千位分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18273464/

相关文章:

javascript - jqGrid。无法创建删除按钮

javascript - 如何让屏幕跟随Slidetoggle

允许字母数字和点 (.) 的 JavaScript 正则表达式

notepad++ - 从 NotePad++ 上的行首删除点

Javascript日期计算夏令时错误

javascript - 如何检查状态与 Prop 不同?

python - pandas str.replace - 如果正则表达式在将字符串转换为数字时未能避免 NaN,则保留当前值

regex - 检查目录是否存在递归地反转路径

notepad++ - 扩展 Notepad++

cmd - Notepad++ NppExec 在 cmd 中运行