[ Version ( since = "2.70" ) ]
public bool match (size_t string_length, string str, string? str_reversed)

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 does not contain any multibyte characters. GLib offers the reverse function to reverse UTF-8 encoded strings.

Example: Match a string against a compiled pattern (full):

public static int main (string[] args) {
PatternSpec spec = new PatternSpec ("dilbert-????/??/??.*");

// Output: ``true``
string str = "dilbert-1999/39/01.png";
bool res = spec.match (str.length, str, str.reverse ());
print ("%s\n", res.to_string ());

// Output: ``true``
str = "dilbert-1999/39/01.jpg";
res = spec.match (str.length, str, null);
print ("%s\n", res.to_string ());

// Output: ``false``
str = "dilbert-1999X/39/01.jpg";
res = spec.match (str.length, str, null);
print ("%s\n", res.to_string ());

return 0;

valac --pkg glib-2.0 GLib.PatternSpec.match.vala



a PatternSpec


the length of string (in bytes, i.e. size, not char_count)


the UTF-8 encoded string to match


the reverse of string or null


true if string matches this