如何统计字符串中括号(包括括号)的内容

时间:2011-10-24 00:34:50

标签: java regex

我有一个像23ert[word]45y[li]dfdf[beautiful]adf这样的字符串。我想将括号[...]包围的每个单词收集到一个数组或集合中。示例字符串在数组或集合中将包含[word][li][beautiful]

如何使用正则表达式或任何其他方法来执行此操作?

编辑:当我使用跟随方法veru好,但是当字符串为56 [ty [df] yu] 5689时,我想只得到[df],如何修改代码

2 个答案:

答案 0 :(得分:2)

static public List<String> collect(String str) {
    List<String> list = new ArrayList<String>();
    Pattern p = Pattern.compile("\\[.+?\\]");
    Matcher m = p.matcher(str);
    while (m.find())
        list.add(m.group());
    return list;
}

答案 1 :(得分:2)

List<String> matchList = new ArrayList<String>();
try {
    Pattern regex = Pattern.compile("\\[.+?\\]");
    Matcher regexMatcher = regex.matcher(subjectString);
    while (regexMatcher.find()) {
        matchList.add(regexMatcher.group());
    } 
} catch (PatternSyntaxException ex) {
    // Syntax error in the regular expression
}

试试这个。