GLib.PatternSpec

Fields

None

Methods

class

new (pattern)

copy ()

equal (pspec2)

free ()

match (string_length, string, string_reversed)

match_string (string)

Details

class GLib.PatternSpec

A GPatternSpec struct is the ‘compiled’ form of a glob-style pattern.

The [func`GLib`.pattern_match_simple] and [method`GLib`.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 [struct`GLib`.PatternSpec] using [ctor`GLib`.PatternSpec.new] and use [method`GLib`.PatternSpec.match_string] instead of [func`GLib`.pattern_match_simple]. This avoids the overhead of repeated pattern compilation.

classmethod new(pattern)[source]
Parameters:

pattern (str) – a zero-terminated UTF-8 encoded string

Returns:

a newly-allocated GLib.PatternSpec

Return type:

GLib.PatternSpec

Compiles a pattern to a GLib.PatternSpec.

copy()[source]
Returns:

a copy of self.

Return type:

GLib.PatternSpec

Copies self in a new GLib.PatternSpec.

New in version 2.70.

equal(pspec2)[source]
Parameters:

pspec2 (GLib.PatternSpec) – another GLib.PatternSpec

Returns:

Whether the compiled patterns are equal

Return type:

bool

Compares two compiled pattern specs and returns whether they will match the same set of strings.

free()[source]

Frees the memory allocated for the GLib.PatternSpec.

match(string_length, string, string_reversed)[source]
Parameters:
  • string_length (int) – the length of string (in bytes, i.e. strlen(), not GLib.utf8_strlen())

  • string (str) – the UTF-8 encoded string to match

  • string_reversed (str or None) – the reverse of string or None

Returns:

True if string matches self

Return type:

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, 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 GLib.strreverse(). This works only if the string does not contain any multibyte characters. GLib offers the GLib.utf8_strreverse() function to reverse UTF-8 encoded strings.

New in version 2.70.

match_string(string)[source]
Parameters:

string (str) – the UTF-8 encoded string to match

Returns:

True if string matches self

Return type:

bool

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.

New in version 2.70.