gpt4 book ai didi

java - 正则表达式在括号之间获取字符串

转载 作者:行者123 更新时间:2023-12-01 12:28:06 25 4
gpt4 key购买 nike

我刚刚学习使用正则表达式,它对我来说确实有点复杂。

我正在尝试用 Java 解析这个字符串:

new Array(new Array('1','Hello'),new Array('2','World (New) Again'),new Array('3','Now'));

我希望输出结果如下:

'1','Hello'
'2','World (New) Again'
'3','Now'

我尝试了一些模式,但我能得到的最好的是:

'1','Hello'
'2','World (New
) Again'
'3','Now'

这是我的代码:

Pattern pattern2 = Pattern.compile("([^\\(]*[']*['][^\\)]*[']*)");
s = "new Array(new Array('1','Hello'),new Array('2','World (New) Again'),new Array('3','Now'));";
Matcher matcher = pattern2.matcher(s);

while(matcher.find()){
String match = matcher.group(1);
System.out.println(match);
}

最佳答案

如果 json 字符串格式与上面类似,下面的代码将起作用。

String s = "new Array(new Array('1','Hello'),new Array('2','World (New) Again'),new Array('3','Now'));";
Pattern regex = Pattern.compile("[(,]new\\sArray\\(((?:(?!\\),new\\sArray|\\)+;).)*)\\)");
Matcher matcher = regex.matcher(s);
while(matcher.find()){
System.out.println(matcher.group(1));
}

输出:

'1','Hello'
'2','World (New) Again'
'3','Now'

DEMO

关于java - 正则表达式在括号之间获取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26179049/

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