Scans for a match in string for the pattern in regex.
The match_options are combined with the match options specified when the regex structure was created, letting you have more flexibility in reusing GRegex structures.
A GMatchInfo structure, used to get information on the match, is stored in match_info if not NULL. Note that if match_info is not NULL then it is created even if the function returns FALSE, i.e. you must free it regardless if regular expression actually matched.
To retrieve all the non-overlapping matches of the pattern in string you can use g_match_info_next().
static void
print_uppercase_words (const gchar *string)
{
// Print all uppercase-only words.
GRegex *regex;
GMatchInfo *match_info;
regex = g_regex_new ("[A-Z]+", 0, 0, NULL);
g_regex_match (regex, string, 0, &match_info);
while (g_match_info_matches (match_info))
{
gchar *word = g_match_info_fetch (match_info, 0);
g_print ("Found: %s\n", word);
g_free (word);
g_match_info_next (match_info, NULL);
}
g_match_info_free (match_info);
g_regex_unref (regex);
}
string is not copied and is used in GMatchInfo internally. If you use any GMatchInfo method (except g_match_info_free()) after freeing or modifying string then the behaviour is undefined.
| regex | a GRegex structure from g_regex_new() |
| string | the string to scan for matches |
| match_options | match options |
| match_info | pointer to location where to store the GMatchInfo, or NULL if you do not need it. [out][allow-none] |
| TRUE is the string matched, FALSE otherwise |