java-用替代逗号分隔字符串(,)
作者:互联网
我知道如何标记字符串,但问题是我想标记如下所示.
String st = "'test1, test2','test3, test4'";
我尝试过的如下:
st.split(",");
这给我的输出为:
'test1
test2'
'test3
test4'
但我希望输出为:
'test1, test2'
'test3, test4'
我该怎么做呢?
解决方法:
由于单引号是not mandatory,所以分割将不起作用,因为Java的正则表达式引擎不允许使用可变长度的后向表达式.这是一个使用正则表达式来匹配内容而不是分隔符的简单解决方案:
String st = "'test1, test2','test3, test4',test5,'test6, test7',test8";
Pattern p = Pattern.compile("('[^']*'|[^,]*)(?:,?)");
Matcher m = p.matcher(st);
while (m.find()) {
System.out.println(m.group(1));
}
您可以通过更改带引号的子字符串的“内容”部分来添加转义单引号的语法(当前为[^’] *,表示“除单引号重复零次或多次之外的任何方式).
标签:split,tokenize,string,java 来源: https://codeday.me/bug/20191030/1971701.html