Name
Glob-style pattern matching -- matches strings against patterns containing '*' (wildcard) and '?' (joker).
Description
The g_pattern_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 GPatternSpec using
g_pattern_spec_new() and use g_pattern_match_string() instead of
g_pattern_match_simple(). This avoids the overhead of repeated
pattern compilation.
Details
struct GPatternSpec
A GPatternSpec is the 'compiled' form of a pattern.
This structure is opaque and its fields cannot be accessed directly.
g_pattern_spec_free ()
Frees the memory allocated for the GPatternSpec.
g_pattern_spec_equal ()
Compares two compiled pattern specs and returns whether they
will match the same set of strings.
g_pattern_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 g_pattern_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
g_pattern_match().
Note also that the reverse of a UTF-8 encoded string can in general
not be obtained by g_strreverse().
This works only if the string doesn't contain any multibyte characters.
Glib doesn't currently offer a function to reverse UTF-8 encoded strings.
g_pattern_match_string ()
Matches a string against a compiled pattern. If the string is to
be matched against more than one pattern, consider using
g_pattern_match() instead while supplying the reversed string.
g_pattern_match_simple ()
Matches a string against a pattern given as a string.
If this function is to be called in a loop, it's more efficient to compile
the pattern once with g_pattern_spec_new() and call g_pattern_match_string()
repetively.