繁体   English   中英

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

[英]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())); } 

要使“要Download Images之间的文本与其中不包含“ Images ”一词的文本相匹配,可以使用像这样的否定环视

Images((?!Images).)*Download

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM