gpt4 book ai didi

圆括号中的 Java 正则表达式

转载 作者:行者123 更新时间:2023-11-29 05:26:15 25 4
gpt4 key购买 nike

我正在尝试解析这样的输入字符串

String input = "((1,2,3),(3,4,5),(2,3,4),...)"

目的是获取一个字符串数组,其中每个元素都是一组内部整数,即

array[0] = (1,2,3)
array[1] = (3,4,5)

等等

为此,我首先使用此正则表达式获取内部序列:

String inner = input.replaceAll("\\((.*)\\)","$1");

并且有效。现在我想要这些套装,我正在尝试这个

String sets = inner.replaceAll("((\\((.*)\\),?)+","$1")

但是我得不到我期望的结果。我做错了什么?

最佳答案

不要使用 replaceAll 来删除末尾的括号。而是使用 String#substring()。然后再次获取单个元素,而不是使用 replaceAll,您应该使用 String#split()

String input = "((1,2,3),(3,4,5),(2,3,4))";
input = input.substring(1, input.length() - 1);

// split on commas followed by "(" and preceded by ")"
String[] array = input.split("(?<=\\)),(?=\\()");

System.out.println(Arrays.toString(array));

关于圆括号中的 Java 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22574915/

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