编程语言
首页 > 编程语言> > java-用替代逗号分隔字符串(,)

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));
}

Demo on ideone.

您可以通过更改带引号的子字符串的“内容”部分来添加转义单引号的语法(当前为[^’] *,表示“除单引号重复零次或多次之外的任何方式).

标签:split,tokenize,string,java
来源: https://codeday.me/bug/20191030/1971701.html