

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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

Use `parse` para extrair dados de um campo de registro e criar campos extraídos que você possa processar em sua consulta. O `parse` comando oferece suporte a três modos: expressões globais, expressões regulares e logfmt.

Se `fieldName` for omitido, `@message` será usado por padrão. Você pode analisar a partir de qualquer campo nomeado especificando o nome do campo como o primeiro argumento.

Se um evento de log não corresponder ao padrão especificado, você ainda o verá nos resultados, mas sem os campos extraídos.

## Modo global
<a name="CWL_QuerySyntax-parse-glob"></a>

Use curingas (`*`) como espaços reservados para valores que você deseja extrair e atribua-os aos campos nomeados com. `as`

**Sintaxe**

```
parse {{fieldName}} "{{pattern}}" as {{alias1}}, {{alias2}}
```

O número de `*` curingas deve ser igual ao número de aliases.

**Exemplos**

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

```
parse @logStream "*/*/*/*" as env, service, instance, shard
| stats count(*) by env, service
```

**Análise encadeada**

Extraia um campo e, em seguida, analise ainda mais o campo extraído.

```
parse @message "url=*" as url
| parse url "/api/*/users/*" as apiVersion, userId
| display apiVersion, userId
```

## Modo Regex
<a name="CWL_QuerySyntax-parse-regex"></a>

Use uma expressão regular com grupos de captura nomeados para extrair campos. Para obter informações sobre a sintaxe das expressões regulares, consulte [Sintaxe de expressões regulares (regex) compatíveis](FilterAndPatternSyntax.md#regex-expressions).

**Sintaxe**

```
parse {{fieldName}} /{{regex}}/
```

Use grupos de captura nomeados `(?<{{name}}>...)` para definir os campos extraídos.

**Exemplos**

**Use grupos de captura nomeados para extrair campos**

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

**Use um grupo de captura nomeado para extrair o ENI de um log de fluxo de VPC**

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

## Modo Logfmt
<a name="CWL_QuerySyntax-parse-logfmt"></a>

Use `parse logfmt` para analisar linhas de log formatadas em logfmt em pares de valores-chave. Logfmt é um formato de registro estruturado em que cada linha contém pares separados por espaço`key=value`.

**Sintaxe**

```
parse {{fieldName}} logfmt as {{alias}}
```

O resultado é um mapa que você acessa com notação de pontos (por exemplo,`lf.level`,`lf.msg`).

**Exemplos**

```
parse @message logfmt as lf
| filter lf.level = "error"
| display lf.msg, lf.duration
```

```
parse @message logfmt as lf
| stats count(*) by lf.host
```