

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# parse
<a name="CWL_QuerySyntax-Parse"></a>

 Verwenden Sie `parse`, um Daten aus einem Protokollfeld zu extrahieren und ein extrahiertes Feld zu erstellen, das Sie in Ihrer Abfrage verarbeiten können. **`parse`** unterstützt sowohl den globalen Modus mit Platzhaltern als auch reguläre Ausdrücke. Hinweise zur Syntax regulärer Ausdrücke finden Sie unter[Unterstützte Syntax für reguläre Ausdrücke (Regex)](FilterAndPatternSyntax.md#regex-expressions).

 Sie können verschachtelte JSON-Felder mit einem regulären Ausdruck analysieren. 

**Beispiel: Analysieren eines verschachtelten JSON-Feld**

 Das Code-Snippet zeigt, wie ein JSON-Protokollereignis analysiert wird, das während der Aufnahme reduziert wurde. 

```
{'fieldsA': 'logs', 'fieldsB': [{'fA': 'a1'}, {'fA': 'a2'}]}
```

 Das Code-Snippet zeigt eine Abfrage mit einem regulären Ausdruck, der die Werte für `fieldsA` und `fieldsB` extrahiert, um die extrahierten Felder `fld` und `array` zu erstellen. 

```
parse @message "'fieldsA': '*', 'fieldsB': ['*']" as fld, array
```

**Benannte Erfassungsgruppen**

Wenn Sie **`parse`** mit einem regulären Ausdruck verwenden, können Sie benannte Erfassungsgruppen verwenden, um ein Muster in einem Feld zu erfassen. Die Syntax lautet `parse @message (?<Name>pattern)`.

Im folgenden Beispiel wird eine Erfassungsgruppe für ein VPC-Flow-Protokoll verwendet, um die ENI in ein Feld namens `NetworkInterface` zu extrahieren.

```
parse @message /(?<NetworkInterface>eni-.*?) / | display NetworkInterface, @message
```

**Anmerkung**  
 JSON-Protokollereignisse werden während der Aufnahme reduziert. Derzeit wird das Parsen verschachtelter JSON-Felder mit einem Glob-Ausdruck nicht unterstützt. Sie können nur JSON-Protokollereignisse parsen, die nicht mehr als 200 Protokollereignisfelder enthalten. Wenn Sie verschachtelte JSON-Felder parsen, müssen Sie den regulären Ausdruck in Ihrer Abfrage so formatieren, dass er dem Format Ihres JSON-Protokollereignisses entspricht. 

## Beispiele des parse-Befehls
<a name="CWL_QuerySyntax-parse-examples"></a>

**Verwenden Sie einen globalen Ausdruck zum Extrahieren der Felder `@user`, `@method` und `@latency` aus dem Protokollfeld `@message` und zur Rückgabe der durchschnittlichen Latenz für jede eindeutige Kombination aus `@method` und `@user`.** 

```
parse @message "user=*, method:*, latency := *" as @user,
    @method, @latency | stats avg(@latency) by @method,
    @user
```

**Verwenden Sie einen regulären Ausdruck zum Extrahieren der Felder `@user2`, `@method2` und `@latency2` aus dem Protokollfeld `@message` und zur Rückgabe der durchschnittlichen Latenz für jede eindeutige Kombination aus `@method2` und `@user2`.**

```
parse @message /user=(?<user2>.*?), method:(?<method2>.*?),
    latency := (?<latency2>.*?)/ | stats avg(latency2) by @method2, 
    @user2
```

**Extrahiert die Felder `loggingTime`, `loggingType` und `loggingMessage`, filtert nach Protokollereignissen, die die Zeichenfolgen `ERROR` oder `INFO` enthalten, und zeigt dann nur die Felder `loggingMessage` und `loggingType` für Ereignisse an, die die Zeichenfolge `ERROR` enthalten.**

```
FIELDS @message
    | PARSE @message "* [*] *" as loggingTime, loggingType, loggingMessage
    | FILTER loggingType IN ["ERROR", "INFO"]
    | DISPLAY loggingMessage, loggingType = "ERROR" as isError
```