Klasse PatternSpec

Alle implementierten Schnittstellen:
PointerInterface

public class PatternSpec extends Record
A `GPatternSpec` struct is the ‘compiled’ form of a glob-style pattern.

The [func@GLib.pattern_match_simple] and [method@GLib.PatternSpec.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()`](man:glob(3)), 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 [struct@GLib.PatternSpec] using
[ctor@GLib.PatternSpec.new] and use [method@GLib.PatternSpec.match_string]
instead of [func@GLib.pattern_match_simple]. This avoids the overhead of repeated
pattern compilation.

https://docs.gtk.org/glib/struct.PatternSpec.html

  • Konstruktordetails

    • PatternSpec

      public PatternSpec(PointerContainer pointer)
    • PatternSpec

      public PatternSpec(@Nonnull Str pattern)
      Compiles a pattern to a [type@GLib.PatternSpec].
      Parameter:
      pattern - a zero-terminated UTF-8 encoded string
    • PatternSpec

      public PatternSpec(String pattern)
      Compiles a pattern to a [type@GLib.PatternSpec].
      Parameter:
      pattern - a zero-terminated UTF-8 encoded string
  • Methodendetails

    • getClassHandler

      public static ClassHandler getClassHandler()
    • copy

      public PatternSpec copy()
      Copies @pspec in a new [type@GLib.PatternSpec].
      Gibt zurück:
      a copy of @pspec.
    • equal

      public boolean equal(@Nonnull PatternSpec pspec2)
      Compares two compiled pattern specs and returns whether they will
      match the same set of strings.
      Parameter:
      pspec2 - another #GPatternSpec
      Gibt zurück:
      Whether the compiled patterns are equal
    • free

      public void free()
      Frees the memory allocated for the [type@GLib.PatternSpec].
    • match

      public boolean match(long string_length, @Nonnull Str string, @Nullable Str string_reversed)
      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
      [method@GLib.PatternSpec.match] will only construct it if the compiled pattern
      requires reverse matches.

      Note that, if the user code will (possibly) match a string against a
      multitude of patterns containing wildcards, chances are high that
      some patterns will require a reversed string. In this case, it’s
      more efficient to provide the reversed string to avoid multiple
      constructions thereof in the various calls to [method@GLib.PatternSpec.match].

      Note also that the reverse of a UTF-8 encoded string can in general
      not be obtained by [func@GLib.strreverse]. This works only if the string
      does not contain any multibyte characters. GLib offers the
      [func@GLib.utf8_strreverse] function to reverse UTF-8 encoded strings.
      Parameter:
      string_length - the length of @string (in bytes, i.e. `strlen()`, not [func@GLib.utf8_strlen])
      string - the UTF-8 encoded string to match
      string_reversed - the reverse of @string
      Gibt zurück:
      %TRUE if @string matches @pspec
    • match

      public boolean match(long string_length, String string, String string_reversed)
      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
      [method@GLib.PatternSpec.match] will only construct it if the compiled pattern
      requires reverse matches.

      Note that, if the user code will (possibly) match a string against a
      multitude of patterns containing wildcards, chances are high that
      some patterns will require a reversed string. In this case, it’s
      more efficient to provide the reversed string to avoid multiple
      constructions thereof in the various calls to [method@GLib.PatternSpec.match].

      Note also that the reverse of a UTF-8 encoded string can in general
      not be obtained by [func@GLib.strreverse]. This works only if the string
      does not contain any multibyte characters. GLib offers the
      [func@GLib.utf8_strreverse] function to reverse UTF-8 encoded strings.
      Parameter:
      string_length - the length of @string (in bytes, i.e. `strlen()`, not [func@GLib.utf8_strlen])
      string - the UTF-8 encoded string to match
      string_reversed - the reverse of @string
      Gibt zurück:
      %TRUE if @string matches @pspec
    • matchString

      public boolean matchString(@Nonnull Str string)
      Matches a string against a compiled pattern.

      If the string is to be
      matched against more than one pattern, consider using
      [method@GLib.PatternSpec.match] instead while supplying the reversed string.
      Parameter:
      string - the UTF-8 encoded string to match
      Gibt zurück:
      %TRUE if @string matches @pspec
    • matchString

      public boolean matchString(String string)
      Matches a string against a compiled pattern.

      If the string is to be
      matched against more than one pattern, consider using
      [method@GLib.PatternSpec.match] instead while supplying the reversed string.
      Parameter:
      string - the UTF-8 encoded string to match
      Gibt zurück:
      %TRUE if @string matches @pspec
    • getTypeID

      public static long getTypeID()
    • getParentTypeID

      public static long getParentTypeID()
    • getTypeSize

      public static TypeSystem.TypeSize getTypeSize()
    • getParentTypeSize

      public static TypeSystem.TypeSize getParentTypeSize()
    • getInstanceSize

      public static int getInstanceSize()