Class WarcFilter
java.lang.Object
org.netpreserve.jwarc.WarcFilter
- All Implemented Interfaces:
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.-
Method Details
-
compile
Compiles a filter expression from a string.- Throws:
WarcFilterException
- when the expression contains a syntax error
-
test
- Specified by:
test
in interfacePredicate<WarcRecord>
-
toString
-