gpt4 book ai didi

java - 将 +n 添加到某些 id 以 "v + number"结尾的字符串的名称中

转载 作者:行者123 更新时间:2023-11-30 02:23:30 24 4
gpt4 key购买 nike

我有一个字符串数组

Value[0] = "Documento v1.docx";
Value[1] = "Some_things.pdf";
Value[2] = "Cosasv12.doc";
Value[3] = "Document16.docx";
Value[4] = "Nodoc";

我想更改文档的名称并向每个文档的版本添加+1。但仅限于以 v{number} 结尾的文档字符串(v1、v12 等)。

我使用了正则表达式[v]+a*^,但只有我获得了“v”,而不是“v”后面的数字

最佳答案

如果要处理所有以 v + 数字 + 扩展名结尾的字符串,请使用类似 v(\\d+)(?=\\.[^.]+ 的模式$),然后在 Matcher#appendReplacement 方法中操作 Group 1 的值:

String[] strs = { "Documento v1.docx", "Some_things.pdf", "Cosasv12.doc", "Document16.docx", "Nodoc"};
Pattern pat = Pattern.compile("v(\\d+)(?=\\.[^.]+$)");
for (String s: strs) {
StringBuffer result = new StringBuffer();
Matcher m = pat.matcher(s);
while (m.find()) {
int n = 1 + Integer.parseInt(m.group(1));
m.appendReplacement(result, "v" + n);
}
m.appendTail(result);
System.out.println(result.toString());
}

请参阅Java demo

输出:

Documento v2.docx
Some_things.pdf
Cosasv13.doc
Document16.docx
Nodoc

图案详细信息

  • v - 一个v
  • (\d+) - 第 1 组值:一位或多位数字
  • (?=\.[^.]+$) - 后跟文字 .,然后是 之外的 1+ 个字符。 直到字符串末尾。

关于java - 将 +n 添加到某些 id 以 "v + number"结尾的字符串的名称中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46240260/

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