在 RegEx 中的匹配项之间插入字符(连字符)

Insert characters (hyphens) between matches in RegEx

我正在使用正则表达式来查找非常简单的模式。

但是,我想在匹配项之间插入一个连字符。

我非常熟悉编写 RegEx 匹配模式,但对如何使用 RegEx 替换插入字符感到困惑。

我的正则表达式是:
(\d{1,2})([A-Z]{1,3})(_)?(\d{3,4})
匹配:

我希望使用 RegEx Replace 的输出在匹配之间输入连字符给我:

我尝试更改 RegEx 并为之间的空模式输入编号的捕获组,但是当使用替换函数时,此 returns 仅连字符。大概是因为 null 捕获组实际上没有捕获任何东西?

使用:
(\d{1,2})([A-Z]{1,3})(_)?()(\d{3,4})

并替换为 $2-$4-$5-
Returns 3 个连字符 - - -

有人可以帮忙....

如果您使用 RegExp (\d{1,2})([A-Z]{1,3})_?(\d{3,4}),并替换为 --,那么它似乎会产生所需的结果。我删除了下划线周围的捕获组