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
this | |
string_length |
the length of |
string |
the UTF-8 encoded string to match |
string_reversed |
the reverse of |
true if |