我需要捕获(替换)下一行中出现的前 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}
现在说了这么多......对于更大的 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/