【发布时间】:2019-12-27 13:22:22
【问题描述】:
我需要使用正则表达式组合一些文本,但是在尝试捕获和替换我的字符串时遇到了一些麻烦。例如 - 我需要从一开始就捕获数字,并将它们添加到 || 之间关闭的每个部分的替换中
我有:
||10||a||ab||abc||
我想要:
||10||a10||ab10||abc10||
所以我需要捕获组 1 中的“10”和捕获组 2 中的“a|ab|abc”
我尝试过类似的方法,但它对我不起作用(仅捕获一个 [a-z] 组)
(?=.*\|\|(\d+)\|\|)(?=.*\b([a-z]+\b))
【问题讨论】:
-
如果没有无限宽度的lookbehind 或一些额外的代码,您将无法正确执行此操作。它在 C# 中使用吗?
-
每行管道之间是否总是正好有 4 个值?
-
@TimBiegeleisen - 不,可以有更多或更少的值
-
您使用什么语言/工具?
-
我不知道/不使用 Ruby,但我建议只提取第一个值,然后在
||上拆分您的字符串,最后将其拼凑在一起。