我看到了我的问题的所有可能的重复,但他们不能解决我的问题。例如,我有这样的文本:
This [is] a [text] in <ignore>square [brackets]</ignore>
我只需要在<ignore></ignore>
标签外的方括号中找到文本。在这种情况下,这些词是is
和text
。如何做到这一点(最好与Java Regex)?
首先,删除<ignore>
标签内的所有内容:
str = str.replaceAll("<ignore>((?!</ignore>).)*</ignore>", "");
之后,创建以下模式来查找括号内的所有内容:
Matcher m = Pattern.compile("\[([^\[\]]*)\]").matcher(str);
while (m.find()) {
str = m.group(1);
System.out.println(str);
}