查找字符串但如果它是另一个字符串的一部分则排除

时间:2013-04-16 16:44:09

标签: java regex

拥有以下字符串:

text TOKEN text TOKEN text <elem attr="text TOKEN text">text TOKEN text TOKEN</elem> text TOKEN text

需要一个RegEx,它会给我所有TOKEN但不包含任何elem元素的任何部分

编辑:我确实有RegEx收集所有elem元素。

<elem(.*?)>(.*?)</elem>

我无法弄清楚如何从RegEx中排除这些以找到TOKEN

1 个答案:

答案 0 :(得分:2)

"TOKEN"出现在字符串前面"</elem>"之前时,以下内容与"<elem"不匹配。

"TOKEN(?!(?:(?!<elem).)*</elem>)"

如果字符串可能包含换行符,请添加Pattern.DOTALL标志。

请求进一步说明。