

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

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

 Utilisez la commande `parse` pour extraire les données d'un champ de journal et créer un champ extrait que vous pouvez traiter dans votre requête. **`parse`** prend en charge à la fois le mode glob utilisant des caractères génériques et des expressions régulières. Pour plus d'informations sur la syntaxe des expressions régulières, consultez[Syntaxe des expressions régulières (regex) prise en charge](FilterAndPatternSyntax.md#regex-expressions).

 Vous pouvez analyser les champs JSON imbriqués avec une expression régulière. 

**Exemple : Analyse d'un champ JSON imbriqué**

 L'extrait de code montre comment analyser un événement du journal au format JSON qui a été aplati lors de l'ingestion. 

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

 L'extrait de code montre une requête avec une expression régulière qui extrait les valeurs de `fieldsA` et `fieldsB` pour créer les champs extraits `fld` et `array`. 

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

**Groupes de capture nommés**

Lorsque vous utilisez **`parse`** avec une expression régulière, vous pouvez utiliser des groupes de capture nommés pour capturer un modèle dans un champ. La syntaxe est `parse @message (?<Name>pattern)`

L'exemple suivant utilise un groupe de capture sur un journal de flux VPC pour extraire l'ENI dans un champ nommé `NetworkInterface`.

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

**Note**  
 Les événements du journal au format JSON sont aplatis lors de l'ingestion. Actuellement, l'analyse de champs JSON imbriqués avec une expression globale n'est pas prise en charge. Vous ne pouvez analyser que les événements du journal au format JSON qui ne contiennent pas plus de 200 champs d'événements de journal. Lorsque vous analysez des champs JSON imbriqués, vous devez mettre en forme l'expression régulière de votre requête pour qu'elle corresponde à votre événement du journal JSON. 

## Exemples de la commande d'analyse.
<a name="CWL_QuerySyntax-parse-examples"></a>

**Utilisez une expression glob pour extraire les champs `@user`, `@method` et `@latency` à partir du champ de journal `@message` et renvoyer la latence moyenne pour chaque combinaison unique de `@method` et `@user`.** 

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

**Utilisez une expression régulière pour extraire les champs `@user2`, `@method2` et `@latency2` à partir du champ du journal `@message` et renvoyer la latence moyenne pour chaque combinaison unique de `@method2` et `@user2`.**

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

**Extrait les champs `loggingTime`, `loggingType` et `loggingMessage`, filtre vers le bas pour journaliser les événements qui contiennent les chaînes `ERROR` ou `INFO`, puis affiche uniquement les champs `loggingMessage` et `loggingType` pour les événements qui contiennent une chaîne `ERROR`.**

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