正则表达式:不使用“”,每 3 位输入一个 space
REGEX: Put a space every 3 digits without using " "
您好!
我已经找了一天多了,还是找不到答案,所以才来这里问我的问题!
解释:
多亏了 Discord 机器人,我创建了一款游戏,它允许使用许多功能 (Atlas),其中之一就是我要谈论的功能:替换。我想做的是使用正则表达式,每三位放一个 space 来格式化数字,如下所示:
基数:
25
321
54500
78545515201
格式化后:
25
321
54 500
78 545 515 201
但是在替换部分,space的“”前后都被剪掉了,所以我做不到
。但是,如果我执行
,则计算两个参数之间的 space。
所以我想做的是使用
格式替换我的数字,以便计算 space。
如果有人有解决方案,我将非常感谢!
编辑: 这里是关于替换函数的 link:https://atlas.bot/documentation/tags/replace
const inputStr = `
25
321
54500
78545515201
`
const res = inputStr.replace(/(?<=[0-9])(?=(?:[0-9]{3})+(?![0-9]))/g, " ")
console.log(res)
您可以使用空捕获组来断言一个没有字符捕获的位置,这样您的替换可以是
:
(\d)()(?=(\d{3})+(?!\d))
在 JS 中:
https://regex101.com/r/virtsL/1/
但它也兼容 PHP (PCRE)、Python 和 Java。
归因:正则表达式最初来自 https://coderwall.com/p/uccfpq/formatting-currency-via-regular-expression,我只是添加了空捕获组。
根据您的意见,这是您尝试的有效版本;稍作修改:
(\d)()(?=(\d\d\d)+(\D|$))
您好! 我已经找了一天多了,还是找不到答案,所以才来这里问我的问题!
解释: 多亏了 Discord 机器人,我创建了一款游戏,它允许使用许多功能 (Atlas),其中之一就是我要谈论的功能:替换。我想做的是使用正则表达式,每三位放一个 space 来格式化数字,如下所示:
基数:
25
321
54500
78545515201
格式化后:
25
321
54 500
78 545 515 201
但是在替换部分,space的“”前后都被剪掉了,所以我做不到
。但是,如果我执行
,则计算两个参数之间的 space。
所以我想做的是使用
格式替换我的数字,以便计算 space。
如果有人有解决方案,我将非常感谢!
编辑: 这里是关于替换函数的 link:https://atlas.bot/documentation/tags/replace
const inputStr = `
25
321
54500
78545515201
`
const res = inputStr.replace(/(?<=[0-9])(?=(?:[0-9]{3})+(?![0-9]))/g, " ")
console.log(res)
您可以使用空捕获组来断言一个没有字符捕获的位置,这样您的替换可以是
:
(\d)()(?=(\d{3})+(?!\d))
在 JS 中:
https://regex101.com/r/virtsL/1/
但它也兼容 PHP (PCRE)、Python 和 Java。
归因:正则表达式最初来自 https://coderwall.com/p/uccfpq/formatting-currency-via-regular-expression,我只是添加了空捕获组。
根据您的意见,这是您尝试的有效版本;稍作修改:
(\d)()(?=(\d\d\d)+(\D|$))