gpt4 book ai didi

regex - 替换前 20 次出现

转载 作者:行者123 更新时间:2023-12-01 22:19:03 24 4
gpt4 key购买 nike

我需要捕获(替换)下一行中出现的前 20 个数字(逗号前)

11112222333344445555, 123456

并在数字之间插入逗号。我尝试添加 (\d)(\d) ... (\d) 20 次并替换为 \1,\2, ...\20 但它失败的。我可以知道使用 notepad++ 进行此操作的更好方法吗?

最佳答案

查找:

(?<a>\d)(?<b>\d)(?<c>\d)(?<d>\d)(?<e>\d)(?<f>\d)(?<g>\d)(?<h>\d)(?<i>\d)(?<j>\d)(?<k>\d)(?<l>\d)(?<m>\d)(?<n>\d)(?<o>\d)(?<p>\d)(?<q>\d)(?<r>\d)(?<s>\d)(?<t>\d)

替换:

${a},${b},${c},${d},${e},${f},${g},${h},${i},${j},${k},${l},${m},${n},${o},${p},${q},${r},${s},${t}

proof of concept


现在说了这么多......对于更大的 n 的类似问题,你可能最好使用迭代/编程方法(使用你选择的语言)而不是单一的 -拍摄“查找/替换”正则表达式操作。

Java 示例:

String input = /* some string */;

Pattern pattern = Pattern.compile("^\\d+");
Matcher matcher = pattern.matcher(input);
String match = matcher.group();

StringBuilder sb = new StringBuilder(match.length()*2);
for (char ch : match.toCharArray()) {
sb.append(ch);
sb.append(',');
}
String replacement = sb.substring(0,sb.length()-1);

String result = replacement + input.subString(match.length());

关于regex - 替换前 20 次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41467447/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com