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