这种情况下如何使用正则表达式?

How to use regular expressions in this case?

字符串是:"LinksImagesListCodeHt1233ddmlImagesConsider112dd2Download",我想得到"ImagesConsider112dd2Download"。所以我使用了这个表达式 "Images.*?Download"。但它匹配 "ImagesListCodeHt1233ddmlImagesConsider112dd2Download"。正确的表达式应该是什么?

暂时有一个丑陋的方法可以解决这个问题:

Pattern p = Pattern.compile(StringUtils.reverse("Download")+ ".*?" + StringUtils.reverse("Images") );
String s = "LinksImagesListCodeHt1233ddmlImagesConsider112dd2Download";
s = StringUtils.reverse(s);
Matcher m = p.matcher(s);
while (m.find()){
    m.end();
    System.out.println(StringUtils.reverse(m.group()));
}

要匹配 ImagesDownload 之间不包含单词 Images 的文本,您可以像这样使用否定环视

Images((?!Images).)*Download

说明
Images -- 匹配文字字符串 Images
(?!Images). -- 匹配一个不跟在Images字后面的字符
((?!Images).)* -- 匹配零次或多次