GLib.PatternSpec¶
record (struct)
A GPatternSpec struct is the ‘compiled’ form of a glob-style pattern.
The pattern_match_simple and PatternSpec.match functions
match a string against a pattern containing * and ? wildcards with similar
semantics as the standard glob() function: * matches an arbitrary,
possibly empty, string, ? matches an arbitrary character.
Note that in contrast to glob(), the / character can be
matched by the wildcards, there are no […] character ranges and * and ?
can not be escaped to include them literally in a pattern.
When multiple strings must be matched against the same pattern, it is better
to compile the pattern to a PatternSpec using
PatternSpec.new and use PatternSpec.match_string
instead of pattern_match_simple. This avoids the overhead of repeated
pattern compilation.
Constructors¶
new¶
Compiles a pattern to a PatternSpec.
Parameters:
pattern— a zero-terminated UTF-8 encoded string
Methods¶
copy¶
Copies pspec in a new PatternSpec.
equal¶
Compares two compiled pattern specs and returns whether they will match the same set of strings.
Parameters:
pspec2— anotherPatternSpec
free¶
Frees the memory allocated for the PatternSpec.
match_¶
Matches a string against a compiled pattern.
Passing the correct
length of the string given is mandatory. The reversed string can be
omitted by passing NULL, this is more efficient if the reversed
version of the string to be matched is not at hand, as
PatternSpec.match will only construct it if the compiled pattern
requires reverse matches.
Note that, if the user code will (possibly) match a string against a
multitude of patterns containing wildcards, chances are high that
some patterns will require a reversed string. In this case, it’s
more efficient to provide the reversed string to avoid multiple
constructions thereof in the various calls to PatternSpec.match.
Note also that the reverse of a UTF-8 encoded string can in general
not be obtained by strreverse. This works only if the string
does not contain any multibyte characters. GLib offers the
utf8_strreverse function to reverse UTF-8 encoded strings.
Parameters:
string_length— the length ofstring(in bytes, i.e.strlen(), notutf8_strlen)string— the UTF-8 encoded string to matchstring_reversed— the reverse ofstring
match_string¶
Matches a string against a compiled pattern.
If the string is to be
matched against more than one pattern, consider using
PatternSpec.match instead while supplying the reversed string.
Parameters:
string— the UTF-8 encoded string to match