gpt4 book ai didi

java - 正则表达式获取空格或 ""之间的所有内容

转载 作者:行者123 更新时间:2023-12-01 18:12:35 26 4
gpt4 key购买 nike

我想像这样转换字符串:

test1 test2 "test 3" test4 "test 5"

进入一个列表,其中包含空格字符和 "" 之间的所有项目。

顺便说一句:那些 " 不应该在字符串内

这是我的代码:

    String test = "test1 test2 \"test 3\" test4 \"test 5\"";
Pattern pattern = Pattern.compile("(\".*?\")");
Matcher matcher = pattern.matcher(test);
List<String> list = new ArrayList<String>();
while (matcher.find()) {
list.add(matcher.group());
}
System.out.println(list);

但这只会匹配 "" 之间的所有内容。这就是结果:

["test 3", "test 5"]

如何修改我的正则表达式以匹配空格和 "" 之间的所有内容?

最后的输出应如下所示:

[test1, test2, test 3, test4, test 5]

最佳答案

您可以尝试以下正则表达式:

(?<=")[^"]*(?="\s|"$)|[^\s"]+

此外,如果您打算经常使用正则表达式,建议使用常量,以避免每次都重新编译,例如:

private static final Pattern REGEX_PATTERN = 
Pattern.compile("(?<=\")[^\"]*(?=\"\\s|\"$)|[^\\s\"]+");

public static void main(String[] args) {
String input = "test1 test2 \"test 3\" test4 \"test 5\"";

Matcher matcher = REGEX_PATTERN.matcher(input);
while (matcher.find()) {
System.out.println(matcher.group());
}
}

输出:

test1
test2
test 3
test4
test 5

在线查看demo .

关于java - 正则表达式获取空格或 ""之间的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31835954/

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