【发布时间】:2016-11-17 23:27:00
【问题描述】:
我需要修改如下所示的字符串集:
debug("some random text: val " + arg1);
或
debug("some random text: val " + arg1 + " val2 " + arg2);
或
debug("some random text: val " + getValue(1) + " val2" + getValue(2) + ".");
或任何类似的组合。例如,可能有 0 个或多个 'args' 都需要替换
进入
debug("some random text: val ", arg1);
debug("some random text: val {} val2 {}", arg1, arg2);
debug("some random text: val {} val2 {}.", getValue(1), getValue(2));
基本上取每个匹配 + .* + 替换为 {} 的参数,并将匹配的参数放在“带引号的字符串”的末尾,用逗号和相同的顺序。 所以最终结果的一般形式应该是这样的:
("this is a quoted {} string with {} tokens {} in it", arg1, arg2, arg);
【问题讨论】:
-
你的第一个例子看起来不对;它不包含
{}。 -
可以接受使用
:perldo的解决方案吗? -
如果有人能一步一步地做到这一点,那就太棒了:D
-
Ruud 的回答非常适合我的目的,因为我手动执行此操作并验证结果。但是,如果有人知道另一种方法会很好,也许使用 sed 和/或 awk...