正则表达式从文件

时间:2015-07-20 12:58:11

标签: java html regex

我有一个包含HTML内容的字符串,我需要获取 .css .js 文件的所有链接。现在,我使用这种模式"(http:.*?.\\.css)"来获取所有CSS链接,但我也可以包含.js链接?

这是我的完整代码:

List<String> urlList =  new ArrayList<String>();
String str = new String(Files.readAllBytes(FileSystems.getDefault().getPath("c:" + File.separator + "nutchfiles" + File.separator + "test.html")));
Pattern p = Pattern.compile("(http:.*?.\\.css)");
Matcher m = p.matcher(str);

while (m.find()) {
    LOG.info("matched urls" + m.group());
}

1 个答案:

答案 0 :(得分:2)

如果您正在寻找正则表达式修复程序,请执行以下操作:

-3 is true
-2 is true
-1 is true
0 is false

更改将帮助您匹配两个扩展名。见Alternation with The Vertical Bar or Pipe Symbol

  

如果您要搜索文字文本Pattern p = Pattern.compile("(http:.*?\\.(?:css|js)\\b)"); cat,请使用竖线或竖线符号分隔这两个选项:dog。如果您想要更多选项,只需展开列表:cat|dog

但是,使用HTML解析器可以更安全地从HTML文件中获取任何内容。