gpt4 book ai didi

java - 如何为给定类型的字符串创建正则表达式?

转载 作者:行者123 更新时间:2023-11-30 05:34:41 26 4
gpt4 key购买 nike

如何为以下类型的字符串编写正则表达式,以便我得到以下格式的响应?

"abc, -xyz, lmn, qwe,-yui"

基本上我需要解析 List<String> 中的上述字符串作为

abc, -xyz
lmn
qwe, -yui

当连字符(-)前正好有一个空格时,下面的代码工作正常:

"abc, -xyz"

但当没有或多个空格时不起作用,例如:

"abc,  -xyz"

我尝试过的正则表达式:

List<String> items = Arrays.stream(order.split("(?!, -),")).map(String::trim).map(String::toLowerCase).collect(Collectors.toList());

请提供解析任意数量空格的代码并解释其逻辑。

最佳答案

您实际上可以使用 "(.+?)" 查找所有结果,而不是拆分字符串。这将查找 " 之间的所有字符串。以下是完整示例:

String input = "\"abc, -xyz\", \"lmn\", \"qwe,-yui\"";
Pattern pattern = Pattern.compile("\"(?<item>.+?)\"");
Matcher matcher = pattern.matcher(input);
List<String> items = new ArrayList<>();
while (matcher.find()) {
items.add(matcher.group("item"));
}
items.forEach(System.out::println);

结果将是这样的:

abc, -xyz
lmn
qwe,-yui

如果需要,您还可以在将项目添加到列表之前使用.trim(),toLowercase()

关于java - 如何为给定类型的字符串创建正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56871100/

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