Class WarcFilter

java.lang.Object
org.netpreserve.jwarc.WarcFilter
All Implemented Interfaces:
Predicate<WarcRecord>

public class WarcFilter extends Object implements Predicate<WarcRecord>
Filter expressions for matching WARC records.

Simplified grammar for the expression language:

 
 expression = "(" expression ")"         ; grouping
            | "!(" expression ")"        ; boolean NOT
            | expression "&&" expression ; boolean AND
            | expression "||" expression ; boolean OR
            | field "==" string          ; string equality
            | field "!=" string          ; string inequality
            | field "=~" string          ; regex match
            | field "!~" string          ; regex non-match
            | field "==" number          ; integer equality
            | field "!=" number          ; integer inequality
            | field "<"  number          ; integer less-than
            | field "<=" number          ; integer less-than-or-equal
            | field ">"  number          ; integer greater-than
            | field ">=" number          ; integer greater-than-or-equal

 field = ":status"          ; HTTP response code psuedo-field
       | "http:" field-name ; HTTP header field
       | field-name         ; WARC header field

 string = '"' [^"]* '"'
 
 
Whitespace outside a string or field is ignored. Fields that do not exist are treated as an empty string when subject to string comparison. Fields that do not contain a valid number are treated as zero when subject to integer comparison.