Regex.match

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.

Unless G_REGEX_RAW is specified in the options, string must be valid UTF-8.

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 glib.match_info.MatchInfo.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]+", G_REGEX_DEFAULT, G_REGEX_MATCH_DEFAULT, 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 glib.match_info.MatchInfo.free) after freeing or modifying string then the behaviour is undefined.

Parameters

string_ string

the string to scan for matches

matchOptions glib.types.RegexMatchFlags

match options

matchInfo glib.match_info.MatchInfo

pointer to location where to store the #GMatchInfo, or null if you do not need it

Return Value

Type: bool

true is the string matched, false otherwise