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()
, 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
None
, this is more efficient if the reversed version of the string to be matched is not at hand, aspattern_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
pattern_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
orNone