首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java中的RegEx阴性LookBehind

Java中的RegEx阴性LookBehind
EN

Stack Overflow用户
提问于 2013-10-07 23:41:27
回答 1查看 377关注 0票数 0

我试图匹配以.xsd结尾但不在form.xsd中的字符串列表,我使用了以下regEx:

代码语言:javascript
复制
ArrayList<String> files = new ArrayList<String>();
files.add("/abadc/asdd/wieur/file1.form.xsd");
files.add("/abadc/asdd/wieur/file2.xsd");

Pattern pattern = Pattern.compile("(?<!form{0,6})\\.xsd$");
for (String file : files) {                                 
    Matcher matcher = pattern.matcher(file);
    if(matcher.find())                                                      
    {                                                                       
        System.out.println("Found >>>> "+file);    
    }                                                                                                                                         
}

我希望file2会被打印出来,但我没有得到任何结果。我在这里做错什么了吗?我在一个在线的java regEx测试程序中尝试了相同的表达式,我得到了预期的结果,但在我的程序中没有得到结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-08 00:02:42

嗯,你的代码示例对我有用..。但“m”后面的{0,6}是没有意义的……为什么会有0到6米的?

这句话:

代码语言:javascript
复制
"(?<!form)\\.xsd$"

这样做更有意义,但我也会更改循环以使用matches()方法,并相应地更改regex:

代码语言:javascript
复制
Pattern pattern = Pattern.compile(".+(?<!form)\\.xsd");
for (String file : files) {                                 
    Matcher matcher = pattern.matcher(file);
    if(matcher.matches())                                                      
    {                                                                       
        System.out.println("Found >>>> "+file);
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19236666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档