

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

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

Se utiliza `parse` para extraer datos de un campo de registro y crear campos extraídos que pueda procesar en la consulta. El `parse` comando admite tres modos: expresiones globales, expresiones regulares y logfmt.

Si `fieldName` se omite, se `@message` utiliza de forma predeterminada. Puede analizar cualquier campo con nombre especificando el nombre del campo como primer argumento.

Si un evento de registro no coincide con el patrón especificado, se seguirá viendo en los resultados, pero sin los campos extraídos.

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

Utilice caracteres comodín (`*`) como marcadores de posición para los valores que desee extraer y asígnelos a los campos con nombre asignado. `as`

**Sintaxis**

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

El número de `*` caracteres comodín debe ser igual al número de alias.

**Ejemplos**

```
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álisis encadenado**

Extraiga un campo y, a continuación, analice aún más el 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>

Utilice una expresión regular con grupos de captura con nombre para extraer campos. Para obtener información acerca de la sintaxis de la expresión regular, consulte [Sintaxis de expresiones regulares (regex) compatibles](FilterAndPatternSyntax.md#regex-expressions).

**Sintaxis**

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

Utilice grupos de captura con nombre `(?<{{name}}>...)` para definir los campos extraídos.

**Ejemplos**

**Utilice grupos de captura con nombre para extraer campos**

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

**Utilice un grupo de captura con nombre para extraer el ENI de un registro de flujo de VPC**

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

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

Se utiliza `parse logfmt` para analizar las líneas de registro con formato logfmt en pares clave-valor. Logfmt es un formato de registro estructurado en el que cada línea contiene pares separados por espacios. `key=value`

**Sintaxis**

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

El resultado es un mapa al que se accede con notación de puntos (por ejemplo,,). `lf.level` `lf.msg`

**Ejemplos**

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

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