正则表达式如下

时间:2010-11-05 20:37:01

标签: java regex

我有一个标记文件,可能有以下记录#

<test> <code> abcd </code> </test>
<test> efgh </test> 

如何一次提取一个测试标签...这意味着我想在上述两种情况下提取测试标签,无论是否只有内容或其他嵌套标签......

2 个答案:

答案 0 :(得分:1)

尝试

Pattern regex = Pattern.compile("<test>(.*?)</test>", Pattern.DOTALL);

但是,如果<test>标签本身可以嵌套(<test> ... <test>...</test> ... </test>),则会失败。

?使前面的*量词懒惰,i。即它将匹配尽可能少的字符,因此一次只匹配一个标记。

答案 1 :(得分:0)

尝试使用正则表达式:

"\\bstart-tag:test\\s+(.*?)\\s+end-tag:test\\b"

重要的一点是?在这里意味着匹配不应该是贪婪的,否则它可以捕获多个标签。

相关问题