### Struct

# GLib PatternSpec

since: 2.0

#### Description

    struct GPatternSpec {
      /* No available fields */
    }

A `GPatternSpec` struct is the ‘compiled’ form of a glob-style pattern.

The `g_pattern_match_simple()` and `g_pattern_spec_match()` functions match a string against a pattern containing ‘‘ and ‘?’ wildcards with similar semantics as the standard `glob()` function: ‘‘ matches an arbitrary, possibly empty, string, ‘?’ matches an arbitrary character.

Note that in contrast to `glob()`, the ‘/’ character can be matched by the wildcards, there are no ‘[…]’ character ranges and ‘*’ and ‘?’ can not be escaped to include them literally in a pattern.

When multiple strings must be matched against the same pattern, it is better to compile the pattern to a `GPatternSpec` using `g_pattern_spec_new()` and use `g_pattern_spec_match_string()` instead of `g_pattern_match_simple()`. This avoids the overhead of repeated pattern compilation.

Available since: 2.0

#### Constructors

###### g_pattern_spec_new

Compiles a pattern to a `GPatternSpec`.

since: 2.0

#### Instance methods

###### g_pattern_spec_copy

Copies `pspec` in a new `GPatternSpec`.

since: 2.70

###### g_pattern_spec_equal

Compares two compiled pattern specs and returns whether they will match the same set of strings.

since: 2.0

###### g_pattern_spec_free

Frees the memory allocated for the `GPatternSpec`.

since: 2.0

###### g_pattern_spec_match

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.

since: 2.70

###### g_pattern_spec_match_string

Matches a string against a compiled pattern. If the string is to be matched against more than one pattern, consider using `g_pattern_match()` instead while supplying the reversed string.

since: 2.70