Eclipse正则表达式搜索不返回多个匹配项

时间:2014-11-27 16:43:21

标签: regex eclipse

我有一个xml文件,其中包含一系列page标记,其中包含以下内容(省略号仅显示未包含的内容):

<page1 ...>
   ...
</page>

<page2 ...>
   ...
</page>

<page3 ...>
   ...
</page>

这是我的Eclipse IDE正则表达式搜索表达式:

(?s)<page.*</page>

搜索结果返回一个匹配项; <page1与最后</page>元素之间的所有内容。我试图让它返回3个匹配,每个元素一个。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

默认情况下,

.*贪婪。也就是说,它尽可能匹配所有字符(最长可能匹配)。通过在?旁边添加量词*,强制正则表达式引擎执行非贪婪匹配(最短匹配)。

(?s)<page.*?<\/page>

(?s) Dotall修饰符,使正则表达式中的点匹配偶数换行符。

DEMO