Java正则表达式导致字符而不是单词

时间:2017-04-20 06:54:38

标签: java regex

我正在编写代码来过滤Java中缩小的css文件中的类和ID,但我仍然坚持为它编写正则表达式。我在regexr网站上写了它,我将它转换为Java,但它给了我字符而不是单词。 我的正则表达式/ java代码看起来像:

List<String> allMatches = new ArrayList<String>();
         Matcher m = Pattern.compile("[a-zA-Z#-_](?![^{]*})")
             .matcher(cssLine);
         String line = "";
         while (m.find()) {
           allMatches.add(m.group());
         }

当我打印数组中的所有项目时,我得到的结果如

    a
    v
    a
    d

输入如下:

/*HEADER*/header{height:180px;} header.fixed{position:fixed;top:0;right:0;height:70px;width:100%;display:block;z-index:1000;background-color:white;-webkit-transition:width2s,height0.2s;transition:width2s,height0,2s;} header.fixed.logo-background{background-image:url('../img/WEB_MOBILE_03.jpg');background-size:auto80%;background-position:auto5%;-webkit-transition:width2s,height0.2s;transition:width2s,height0,2s;}

有谁知道为什么这不仅仅给我一些像“header.fixed”这样的字符?

1 个答案:

答案 0 :(得分:1)

在您的正则表达式中添加了 + ,现在它已([a-zA-Z#-_]+)(?![^{]*})

<强>输出

/*HEADER*/header
header.fixed
header.fixed.logo-background