### Method

# GLib Regex match

since: 2.14

#### Declaration

    gboolean
    g_regex_match (
      const GRegex* regex,
      const gchar* string,
      GRegexMatchFlags match_options,
      GMatchInfo** match_info
    )

#### Description

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 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]+", 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 g_match_info_free()) after freeing or modifying `string` then the behaviour is undefined.

Available since: 2.14

#### Parameters

`string`

  Type: `const gchar*`

  The string to scan for matches.

  The data is owned by the caller of the method.
  The value is a NUL terminated UTF-8 string.

`match_options`

  Type: `GRegexMatchFlags`

  Match options.

`match_info`

  Type: `GMatchInfo`

  Pointer to location where to store the `GMatchInfo`, or `NULL` if you do not need it.

  The argument will be set by the function.
  The argument can be `NULL`.
  The caller of the method takes ownership of the data, and is responsible for freeing it.

#### Return value

Type: `gboolean`

`TRUE` is the string matched, `FALSE` otherwise.