我有一个字符串,我想用delimeter}}分割成部分,} {。。我试过使用:
String delims="['}},{\"']+";
String field[]=new String[50];
field=subResult.split(delims);
但它不起作用:-(你知道吗,我应该使用什么表达式?
感谢您的回复
答案 0 :(得分:3)
{
是一个正则表达式元字符,用于标记字符类的开头。要匹配文字{
,您需要通过将其\\
作为前缀来转义它:
String delims="}},\\{";
String field[] = subResult.split(delims);
您无需转义正则表达式中的}
,因为正则表达式引擎会推断它是文字}
,因为它前面没有开头{
。这就是逃避它没有害处。
答案 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);