java 获取第三个冒号和第四个冒号之间的子字符串

z0qdvdin  于 2022-10-30  发布在  Java
关注(0)|答案(2)|浏览(311)

我有以下模式的字符串:

ab:ab:ab:1:ab
ac:ac:ac:2:ac
ad:ad:ad:3:ad

我必须提取3rd colon4th colon之间的字符串。
对于上面的示例字符串,结果将是"1""2""3"
在Java中,使用字符串函数来提取它的一个简短方法是什么?

edqdpe6u

edqdpe6u1#

您可以直接用“:“拆分,得到第四个元素:
类似于:

Stream.of("ab:ab:ab:1:ab", "ac:ac:ac:2:ac", "ad:ad:ad:3:ad")
      .map(s -> s.split(":")[3])
      .forEach(System.out::println);

输出量:

1
2
3
aiqt4smr

aiqt4smr2#

或者,通过捕获将整个字符串替换为所需的项。

  • (?:.*?:){3}-三个不情愿字符串的非捕获组,后跟:
  • (.*?)-在第3和第4结肠之间捕获目标。
  • .*$-字符串的其余部分到末尾。
  • $1-对第一个(也是唯一的)捕获组的引用
String[] data = { "ab:ab:ab:1:ab",
 "ac:ac:ac:2:ac",
 "ad:ad:ad:3:ad"};

for (String str : data) {
    System.out.println(str.replaceAll("(?:.*?:){3}(.*?):.*$","$1"));
}

印刷品

1
2
3

相关问题