PDF

Text Parsing Ausdrücke

Die Aufgabe des Parsing Ausdrucks ist dazu, eine Liste benannter Werte (Schlüssel / Wert-Paare) für den gegebenen Text bereitzustellen. Diese Felder ermöglichen eine spätere Nachrichtenfilterung und können auch als Zähler oder Statusobjekte behandelt werden. Für jeden Ausdruck muss die Liste der Variablen deklariert werden, die vom Ausdruck zurückgegeben werden.

Komma-getrennte Werte

Das ist wahrscheinlich das einfache Format zum Parsen. Variablennamen beschreiben jede Spalte und das Standardtrennzeichen ist das Komma.

CSV sample

Key Value Pairs

Schlüsselwertpaare

Dieses Format ist nützlich, wenn Daten als eine Reihe von Schlüssel / Wert-Paaren codiert sind, die durch ein zusätzliches Trennzeichen getrennt sind. Beispielsweise:

          from:John;val:10

In diesem Fall wäre Paar-Trennzeichen ; und Werttrennzeichen :

Ein anderes Beispiel kann ini* encoding sein:

        speed=10
        acceleration=0

In diesem Fall wäre Paar-Trennzeichen \ n und Werttrennzeichen=

Regulärer Ausdruck

Reguläre Ausdrücke sind sehr stark und nützlich beim Mustervergleich. NetCrunch verwendet die Javascript-Implementierung des regulären Ausdrucks und vergleicht die Variable mit der Reihenfolge übereinstimmender Gruppen.

Beispiel - Log4J-Protokollformat

Wir haben ein reguläres Muster für ein beliebtes Log4J-Format erstellt.

      (\d{4}-\d{2}-\d{2}) (\d{2}:\d{2}:\d{2},\d{3}) \[(.*?)\] ([^ ]*) +([^ ]*) - (.*)$          

Welche wir folgenden Variablen (Feldern) zugeordnet haben

  • Datum
  • Zeit
  • Thread
  • Schweregrad
  • Modul
  • Nachricht

Apache Common Log Format

Dies ermöglicht die einfache Decodierung von Apache-Protokollen im Common Log Format. Sie müssen nur das Format angeben, das für die Konfiguration des angegebenen Protokolls verwendet wird.

Common Log Format

[Weitere Informationen finden Sie in der Apache-Dokumentation] (https://httpd.apache.org/docs/1.3/logs.html#common)

XPath / DOM-Selektoren

NetCrunch unterstützt XML-Pfade zum Abrufen von Daten aus XML. Es werden nur Pfade unterstützt, die einzelne Werte zurückgeben.

Beispiel
     <doc>
         <amount>10.2</amount>
         <user name="John" id="123"/>
     </doc>

Wir können alle Variablen über folgende Pfade extrahieren:

  • /doc/amount
  • //user/@name
  • //user/@id
Bedingte Selektoren

Sie können das Attribut des Elements auswählen, indem Sie das Knotenelement mit einem anderen Attribut auswählen. In unserem Beispiel könnten wir den Namen des Benutzers erhalten, indem wir das Element anhand seiner ID auswählen.

  //doc/user[@id='123']/@name
DOM Selektoren

Der XPath-Ausdruck unterstützt auch DOM-Selektoren (auch bekannt als CSS-Selektoren). Sie können sie zum Auswählen von Knotenwerten verwenden. Wenn Sie jedoch einen Attributwert benötigen, können Sie dies nicht über den Standard-CSS-Selektor angeben. Deshalb haben wir die Syntax um das '|' Pipe-Zeichen ergänzt, das Sie den Attributnamen hinzufügen können.

Der folgende Pfad erzeugt also dasselbe Ergebnis wie die obigen XPaths.

  • doc > amount
  • user|name
  • user|id

Sample XPath

JSON-Pfad

NetCrunch unterstützt JSON-Pfadpfade zum Abrufen von Daten aus JSON-Daten. Es werden nur Pfade unterstützt, die einzelne Werte zurückgeben.

Beispiel
   {
     "doc"  :  {
     "amount": 22,
     "user" :  {
        "name" : "John",
        "id" : 100
     }
   }
 }

Wir können alle Variablen über folgende Pfade extrahieren:

  • $.doc.amount
  • $..user.name
  • $..user.id
JSON path sample

Javascript

Javascript ist die ultimative Lösung, um die Daten zu knacken, da Sie reguläre Ausdrücke und die gesamte Leistungsfähigkeit des Javascript-Engines (V8), die den neuesten Sprachstandard implementiert, verwenden können. Ihr Skript wird im strikten Modus in einer separaten und sandboxed NodeJS -Engine ausgeführt und wird beendet, wenn es das Zeitlimit überschreitet.

Die Eingabe

Skripteingabe ist in text Variable.

Die Ausgabe

Als Ergebnis des Skripts erwartet NetCrunch, dass die result-Variable ein Objekt mit Eigenschaften ist, die den deklarierten Variablen (Feldern) entsprechen.

Beispiel

Stellen wir uns vor, dass wir eine E-Mail mit JSON erhalten. Es wird ziemlich einfach sein, Javascript zu verwenden, um Daten zu extrahieren, die wir brauchen,

Test Text
          {
              "probe_1" : {
                    "temp" : 10 
              }
         }    
Variablen
  • Temperatur
Das Skript
          const data = JSON.parse(text);
          result = {
             temperature : data.probe_1.temp                     
          }

domemailexpressionjsonpathlogparsingselectortexttext logxpath