gpt4 book ai didi

java - 需要正则表达式的帮助来排除“”中的拆分字符串

转载 作者:行者123 更新时间:2023-11-30 04:16:32 25 4
gpt4 key购买 nike

我需要基于逗号作为分隔符来拆分字符串,但是如果字符串的一部分用 "括起来,则该部分的拆分必须从 "的开头到结尾停止,即使它之间包含逗号。

任何人都可以帮助我使用正则表达式环顾四周来解决这个问题。

最佳答案

复活这个问题是因为它有一个没有提到的简单的正则表达式解决方案。这种情况听起来非常类似于 ["正则表达式-匹配模式除非..."][4]

\"[^\"]*\"|(,)

交替的左侧匹配完整的双引号字符串。我们将忽略这些匹配。右侧匹配并捕获第 1 组的逗号,我们知道它们是正确的,因为它们与左侧的表达式不匹配。

这是工作代码(请参阅 online demo ):

import java.util.regex.*;
import java.util.List;

class Program {
public static void main (String[] args) {

String subject = "\"Messages,Hello\",World,Hobbies,Java\",Programming\"";
Pattern regex = Pattern.compile("\"[^\"]*\"|(,)");
Matcher m = regex.matcher(subject);
StringBuffer b = new StringBuffer();
while (m.find()) {
if(m.group(1) != null) m.appendReplacement(b, "SplitHere");
else m.appendReplacement(b, m.group(0));
}
m.appendTail(b);
String replaced = b.toString();
String[] splits = replaced.split("SplitHere");
for (String split : splits)
System.out.println(split);
} // end main
} // end Program

引用

  1. How to match pattern except in situations s1, s2, s3

关于java - 需要正则表达式的帮助来排除“”中的拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18202038/

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