我有一个像23ert[word]45y[li]dfdf[beautiful]adf
这样的字符串。我想将括号[...]
包围的每个单词收集到一个数组或集合中。示例字符串在数组或集合中将包含[word]
,[li]
和[beautiful]
。
如何使用正则表达式或任何其他方法来执行此操作?
编辑:当我使用跟随方法veru好,但是当字符串为56 [ty [df] yu] 5689时,我想只得到[df],如何修改代码
答案 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
}
试试这个。