Teilen über


RegexMatch (NoSQL-Abfrage)

GILT FÜR: NoSQL

Diese Funktion stellt Funktionalitäten für reguläre Ausdrücke bereit. Bei regulären Ausdrücken handelt es sich um eine präzise und flexible Notation zum Suchen von Textmustern.

Syntax

RegexMatch(<string_expr_1>, <string_expr_2>, [, <string_expr_3>])  

Argumente

BESCHREIBUNG
string_expr_1 Ein Zeichenfolgenausdruck der durchsucht werden soll.
string_expr_2 Ein Zeichenfolgenausdruck mit einem regulären Ausdruck, der für die Verwendung bei der Suche nach „string_expr_1“ definiert wird.
string_expr_3(Optional) Ein optionaler Zeichenfolgenausdruck mit den ausgewählten Modifizierern, die mit dem regulären Ausdruck (string_expr_2) verwendet werden sollen. Falls nicht angegeben, wird standardmäßig die Übereinstimmung mit dem regulären Ausdruck ohne Modifizierer ausgeführt.

Hinweis

Das Bereitstellen einer leeren Zeichenfolge für „string_expr_3“ entspricht funktional dem Weglassen des Arguments.

Rückgabetypen

Gibt einen booleschen Ausdruck zurück.

Beispiele

Das folgende Beispiel zeigt Übereinstimmungen mit einem regulären Ausdruck mithilfe verschiederen Modifizierer.

SELECT VALUE {
    noModifiers: RegexMatch("abcd", "ABC"), 
    caseInsensitive: RegexMatch("abcd", "ABC", "i"), 
    wildcardCharacter: RegexMatch("abcd", "ab.", ""),
    ignoreWhiteSpace: RegexMatch("abcd", "ab c", "x"), 
    caseInsensitiveAndIgnoreWhiteSpace: RegexMatch("abcd", "aB c", "ix"),
    containNumberBetweenZeroAndNine: RegexMatch("03a", "[0-9]"),
    containPrefix: RegexMatch("salt3824908", "salt{1}"),
    containsFiveLetterWordStartingWithS: RegexMatch("shame", "s....", "i")
}
[
  {
    "noModifiers": false,
    "caseInsensitive": true,
    "wildcardCharacter": true,
    "ignoreWhiteSpace": true,
    "caseInsensitiveAndIgnoreWhiteSpace": true,
    "containNumberBetweenZeroAndNine": true,
    "containPrefix": true,
    "containsFiveLetterWordStartingWithS": true
  }
]

Im nächsten Beispiel wird davon ausgegangen, dass Sie über einen Container mit Elementen und einem Feld namens „name“ verfügen.

[
  {
    "name": "Tecozow coat",
    "category": "winter-coats"
  },
  {
    "name": "Bladnick coat",
    "category": "winter-coats"
  },
  {
    "name": "Anidin heavy jacket",
    "category": "winter-coats"
  }
]

In diesem Beispiel wird die Übereinstimmung mit einem regulären Ausdruck als Filter verwendet, um eine Teilmenge von Elementen zurückzugeben.

SELECT VALUE
    p.name
FROM
    products p
WHERE
    p.category = "winter-coats" AND    
    RegexMatch(p.name, " coat{1}")
[
  "Tecozow coat",
  "Bladnick coat"
]

Bemerkungen

  • Diese Funktion profitiert nur von einem Bereichsindex, wenn der reguläre Ausdruck entweder in „StartsWith“, „EndsWith“, „Contains“, oder „StringEquals“ äquivalente Systemfunktionen unterteilt werden kann.
  • Die Funktion gibt „undefined“ zurück, wenn der zu durchsuchende Zeichenfolgenausdruck (string_expr_1), der reguläre Ausdruck (string_expr_2) oder die ausgewählten Modifizierer (string_expr_3) ungültig sind.
  • Diese Funktion unterstützt die folgenden vier Modifizierer: | | Format | Beschreibung | | --- | --- | --- | | Mehrere Zeilen | m | Behandeln Sie den zu suchenden Zeichenfolgenausdruck als mehrere Zeilen. Ohne diese Option gleichen die Zeichen „^“ und „$“ den Anfang oder das Ende der Zeichenfolge ab und nicht jede einzelne Zeile. | | Übereinstimmung mit beliebiger Zeichenfolge | s | Hiermit legen Sie fest, dass „.“ mit allen Zeichen übereinstimmt, einschließlich Neue-Zeile-Zeichen. | | Groß-/Kleinbuchstaben ignorieren | i | Hiermit wird beim Musterabgleich die Groß-/Kleinschreibung ignoriert. | | Leerzeichen ignorieren | x | Sämtliche Leerzeichen werde ignoriert. |
  • Wenn Sie ein Metazeichen in einem regulären Ausdruck verwenden wollen und nicht möchten, dass es eine besondere Bedeutung hat, sollten Sie dieses Zeichen mit dem Escapezeichen „\“ versehen.