【发布时间】:2016-10-25 09:33:51
【问题描述】:
编辑
在正则表达式中,匹配的捕获组可以替换为相同的匹配更改,用另一个字符替换一个字符吗?
原始问题
我正在将产品列表转换为 CSV 文本文件。列表中的每一行都有:number name[ description] price,格式如下:
1 PRODUCT description:120
2 PRODUCT NAME TWO second description, maybe:80
3 THIRD PROD:18
生成的格式还必须包含一个 slug(使用 - 而不是 )作为第二个字段:
1 PRODUCT:product-1:description:120
2 PRODUCT NAME TWO:product-name-two-2:second description, maybe:80
3 THIRD PROD:third-prod-3::18
我使用的正则表达式是这样的:
(\d+) ([A-Z ]+?)[ ]?([a-z ,]*):([\d]+)
替换字符串是:
`\1 \2:\L$2-\1:\3:\4
这样我的结果是:
1 PRODUCT:product-1:description:120
2 PRODUCT NAME TWO:product name two-2:second description, maybe:80
3 THIRD PROD:third prod-3::18
我想念的是我在第二个字段中需要的分隔符连字符 -,即组 \2 与 '-' 而不是 ''。
是否可以使用单个正则表达式或者我应该进行第二遍?
(目前我使用的是 Sublime 文本编辑器)
谢谢。
【问题讨论】:
-
我很确定你需要另一轮正则表达式来解决这个问题。
-
@Aaron 我也开始很确定了,如果你足够确定,添加一个答案,我会接受它;)
标签: regex capturing-group