使用 split 或 tokenizer 在大括号内获取字符串的方法

method to take string inside curly braces using split or tokenizer

String s = "author= {insert text here},";

试图获取字符串的内部,我环顾四周但找不到仅使用拆分或分词器的解决方案...

到目前为止我在做这个

arraySplitBracket = s.trim().split("\{", 0);

这给了我 insert text here}, 在 array[1] 但 id 就像一种没有 } attached

的方法

也试过

StringTokenizer st = new StringTokenizer(s, "\{,\},");

但它给了我 author= 作为输出。

如何通过排除 arraySplitBracket.length()-1

处的字符来获取子字符串?

类似于

arraySplitBracket[1] = arraySplitBracket[1].substring(0,arraySplitBracket.length()-1);

或者用StringClass的replaceAll函数来替换}?

public static void main(String[] args) {
        String input="{a c df sdf TDUS^&%^7 }";     
        String regEx="(.*[{]{1})(.*)([}]{1})";
        Matcher matcher = Pattern.compile(regEx).matcher(input);            

        if(matcher.matches()) {         
            System.out.println(matcher.group(2));
        }
}

您可以使用 \{([^}]*)\} 正则表达式来获取花括号之间的字符串。

代码快照:

String str = "{insert text here}";
        Pattern p = Pattern.compile("\{([^}]*)\}");
        Matcher m = p.matcher(str);
        while (m.find()) {
          System.out.println(m.group(1));
        }

输出:

insert text here
String s = "auther ={some text here},"; 
s =  s.substring(s.indexOf("{") + 1); //some text here},
s = s.substring(0, s.indexOf("}"));//some text here
System.out.println(s);