match


Description:

[ 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 [method@GLib.PatternSpec.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 [method@GLib.PatternSpec.match].

Note also that the reverse of a UTF-8 encoded string can in general not be obtained by [func@GLib.strreverse]. This works only if the string does not contain any multibyte characters. GLib offers the [func@GLib.utf8_strreverse] 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

Parameters:

this

a PatternSpec

string_length

the length of string (in bytes, i.e. `strlen()`, not [func@GLib.utf8_strlen])

string

the UTF-8 encoded string to match

string_reversed

the reverse of string

Returns:

true if string matches this