1

我最近实现了 Crawler4j,我试图通过逐行分解代码来自学代码。我无法理解下面代码行中的 !FILTERS 对象的含义。

 @Override
    public boolean shouldVisit(WebURL url) {
            String href = url.getURL().toLowerCase();
            return !FILTERS.matcher(href).matches() && href.startsWith("http://www.ics.uci.edu/");
    }

如果有人帮助我理解,将不胜感激!过滤器

4

2 回答 2

2

它只是一个条件的否定......你应该这样阅读它:

! ( FILTERS.matcher(href).matches() ) [...]

基本上,如果过滤器与 href 不匹配,并且 href 以“http://www.ics.uci.edu/”开头,则该函数将返回 true。

于 2012-09-22T06:53:12.803 回答
1

的相反值FILTERS.matcher(href).matches()。基本上感叹号也称为negate符号。

如果此条件:FILTERS.matcher(href).matches()返回 true,则将其更改为 false。

于 2012-09-22T06:53:09.260 回答