Java - 使用特殊分隔符拆分字符串

时间:2011-12-09 13:11:02

标签: java string

我有一个字符串,我想用delimeter}}分割成部分,} {。。我试过使用:

String delims="['}},{\"']+";
String field[]=new String[50];
field=subResult.split(delims);

但它不起作用:-(你知道吗,我应该使用什么表达式?

感谢您的回复

5 个答案:

答案 0 :(得分:3)

{是一个正则表达式元字符,用于标记字符类的开头。要匹配文字{,您需要通过将其\\作为前缀来转义它:

String delims="}},\\{";
String field[] = subResult.split(delims);

您无需转义正则表达式中的},因为正则表达式引擎会推断它是文字},因为它前面没有开头{。这就是逃避它没有害处。

See it

答案 1 :(得分:2)

如果分隔符只是}},{,则subResult.split("\\}\\},\\{")应该有效

String fooo = "asdf}},{bar}},{baz";
System.out.println(Arrays.toString(fooo.split("\\}\\},\\{")));

答案 2 :(得分:1)

你应该逃避它。

String.split("\\}\\},\\{");

答案 3 :(得分:1)

你可能会使它变得比你需要的更复杂。

String text = "{{aaa}},{\"hello\"}";
String[] field=text.split("\\}\\},\\{\"");
System.out.println(Arrays.toString(field));

答案 4 :(得分:0)

使用:

Pattern p = Pattern.compile("[}},{\"]");        
// Split input with the pattern
String[] result = p.split(MyTextString);