在 RegEx 中的匹配项之间插入字符(连字符)
Insert characters (hyphens) between matches in RegEx
我正在使用正则表达式来查找非常简单的模式。
但是,我想在匹配项之间插入一个连字符。
我非常熟悉编写 RegEx 匹配模式,但对如何使用 RegEx 替换插入字符感到困惑。
我的正则表达式是:
(\d{1,2})([A-Z]{1,3})(_)?(\d{3,4})
匹配:
- 03EM0109
- 03EM0112
- 03EM0151
- 3V204
- 02SDV_0900
我希望使用 RegEx Replace 的输出在匹配之间输入连字符给我:
- 03-EM-0109
- 03-EM-0112
- 03-EM-0151
- 3-V-204
- 02-SDV-0900
我尝试更改 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})
,并替换为 --
,那么它似乎会产生所需的结果。我删除了下划线周围的捕获组
我正在使用正则表达式来查找非常简单的模式。
但是,我想在匹配项之间插入一个连字符。
我非常熟悉编写 RegEx 匹配模式,但对如何使用 RegEx 替换插入字符感到困惑。
我的正则表达式是:
(\d{1,2})([A-Z]{1,3})(_)?(\d{3,4})
匹配:
- 03EM0109
- 03EM0112
- 03EM0151
- 3V204
- 02SDV_0900
我希望使用 RegEx Replace 的输出在匹配之间输入连字符给我:
- 03-EM-0109
- 03-EM-0112
- 03-EM-0151
- 3-V-204
- 02-SDV-0900
我尝试更改 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})
,并替换为 --
,那么它似乎会产生所需的结果。我删除了下划线周围的捕获组