5.2. Regular Expression Literals¶
Danger
Experimental Feature
Regular expressions are a powerful technique for pattern matching in strings. Vala has experimental support for regular expression literals (/regex/
). Example:
string email = "tux@kernel.org";
if (/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.match(email)) {
stdout.printf("Valid email address\n");
}
The trailing i makes the expression case insensitive. You can store a regular expression in a variable of type Regex:
Regex regex = /foo/;
A example of regular expression replacement:
var r = /(foo|bar|cow)/;
var o = r.replace ("this foo is great", -1, 0, "thing");
print ("%s\n", o);
The following trailing characters can be used:
i, letters in the pattern match both upper- and lowercase letters
m, the “start of line” and “end of line” constructs match immediately following or immediately before any newline in the string, respectively, as well as at the very start and end.
s, a dot metacharater . in the pattern matches all characters, including newlines. Without it, newlines are excluded.
x, whitespace data characters in the pattern are totally ignored except when escaped or inside a character class.