字符串是:“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()));
}
答案 0 :(得分:0)
要匹配Images
到Download
之间不包含单词Images
的文字,可以使用负面的外观,如下所示
Images((?!Images).)*Download
解释
Images
- 匹配文字字符串Images
(?!Images).
- 匹配不遵循Images
字
的字符
((?!Images).)*
- 匹配零次或多次