PatternSpec#
- class PatternSpec(**kwargs)#
A GPatternSpec
struct is the ‘compiled’ form of a glob-style pattern.
The pattern_match_simple
and 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()
<man:glob(3>`_), 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
new
and use match_string
instead of pattern_match_simple
. This avoids the overhead of repeated
pattern compilation.
Constructors#
- class PatternSpec
- classmethod new(pattern: str) PatternSpec #
Compiles a pattern to a
PatternSpec
.- Parameters:
pattern – a zero-terminated UTF-8 encoded string
Methods#
- class PatternSpec
- equal(pspec2: PatternSpec) bool #
Compares two compiled pattern specs and returns whether they will match the same set of strings.
- Parameters:
pspec2 – another
PatternSpec
- free() None #
Frees the memory allocated for the
PatternSpec
.
- match(string_length: int, string: str, string_reversed: str | None = None) bool #
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, asmatch
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
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 theutf8_strreverse
function to reverse UTF-8 encoded strings.Added in version 2.70.
- Parameters:
string_length – the length of
string
(in bytes, i.e.strlen()
, notutf8_strlen
)string – the UTF-8 encoded string to match
string_reversed – the reverse of
string