base/utils/patterns.bro
-
GLOBAL
Functions for creating and working with patterns.
Summary
Functions
match_pattern : function |
Matches the given pattern against the given string, returning
a PatternMatchResult record. |
set_to_regex : function |
Given a pattern as a string with two tildes (~~) contained in it, it will
return a pattern with string set’s elements OR’d together where the
double-tilde was given (this function only works at or before init time). |
Detailed Interface
Types
-
PatternMatchResult
Type: | record
- matched:
bool
T if a match was found, F otherwise.
- str:
string
Portion of string that first matched.
- off:
count
1-based offset where match starts.
|
Functions
-
match_pattern
-
Matches the given pattern against the given string, returning
a PatternMatchResult
record.
For example: match_pattern("foobar", /o*[a-k]/)
returns
[matched=T, str=f, off=1]
, because the first match is for
zero o’s followed by an [a-k], but match_pattern("foobar", /o+[a-k]/)
returns [matched=T, str=oob, off=2]
.
S: | a string to match against. |
P: | a pattern to match. |
Returns: | a record indicating the match status. |
-
set_to_regex
-
Given a pattern as a string with two tildes (~~) contained in it, it will
return a pattern with string set’s elements OR’d together where the
double-tilde was given (this function only works at or before init time).
Ss: | a set of strings to OR together. |
Pat: | the pattern containing a “~~” in it. If a literal backslash is
included, it needs to be escaped with another backslash due to Bro’s
string parsing reducing it to a single backslash upon rendering. |
Returns: | the input pattern with “~~” replaced by OR’d elements of input set. |