extract_all()
Se aplica a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Obtiene todas las coincidencias de una expresión regular de una cadena de origen. Opcionalmente, recupere un subconjunto de grupos coincidentes.
print extract_all(@"(\d+)", "a set of numbers: 123, 567 and 789") // results with the dynamic array ["123", "567", "789"]
Alias en desuso: extractall()
Sintaxis
extract_all(
regex,
[captureGroups,
] source)
Obtenga más información sobre las convenciones de sintaxis.
Parámetros
Nombre | Type | Obligatorio | Descripción |
---|---|---|---|
regex | string |
✔️ | Expresión regular que contiene entre uno y 16 grupos de captura. |
captureGroups | dynamic |
Matriz que indica los grupos de captura que se van a extraer. Los valores válidos van de 1 al número de grupos de captura en la expresión regular. También se permiten grupos de captura con nombre. Consulte ejemplos. | |
source | string |
✔️ | Cadena en la que se va a buscar. |
Devoluciones
- Si regex encuentra una coincidencia en el origen: devuelve una matriz dinámica que incluye todas las coincidencias con los grupos de captura indicados captureGroups o todos los grupos de captura en la expresión regular.
- Si el número de captureGroups es 1: la matriz devuelta tiene una sola dimensión de valores coincidentes.
- Si el número de captureGroups es superior a 1: la matriz devuelta es una colección bidimensional de coincidencias de varios valores por selección captureGroups o todos los grupos de captura presentes en la expresión regular si se omite captureGroups .
- Si no hay ninguna coincidencia:
null
.
Ejemplos
Extracción de un único grupo de captura
La consulta siguiente devuelve una representación hexadecimal de bytes (dos dígitos hexadecimales) del GUID.
print Id="82b8be2d-dfa7-4bd1-8f63-24ad26d31449"
| extend guid_bytes = extract_all(@"([\da-f]{2})", Id)
Salida
ID | guid_bytes |
---|---|
82b8be2d-dfa7-4bd1-8f63-24ad26d31449 | ["82","b8","be","2d","df","a7","4b","d1","8f","63","24","ad","26","d3","14","49"] |
Extracción de varios grupos de captura
La consulta siguiente usa una expresión regular con tres grupos de captura para dividir cada parte GUID en la primera letra, la última letra y lo que esté en el medio.
print Id="82b8be2d-dfa7-4bd1-8f63-24ad26d31449"
| extend guid_bytes = extract_all(@"(\w)(\w+)(\w)", Id)
Salida
ID | guid_bytes |
---|---|
82b8be2d-dfa7-4bd1-8f63-24ad26d31449 | [["8","2b8be2","d"],["d","fa","7"],["4","bd","1"],["8","f6","3"],["2","4ad26d3144","9"]] |
Extracción de un subconjunto de grupos de captura
La consulta siguiente selecciona un subconjunto de grupos de captura.
La expresión regular coincide con la primera letra, la última letra y todo el resto.
El parámetro captureGroups se usa para seleccionar solo la primera y las últimas partes.
print Id="82b8be2d-dfa7-4bd1-8f63-24ad26d31449"
| extend guid_bytes = extract_all(@"(\w)(\w+)(\w)", dynamic([1,3]), Id)
Salida
ID | guid_bytes |
---|---|
82b8be2d-dfa7-4bd1-8f63-24ad26d31449 | [["8","d"],["d","7"],["4","1"],["8","3"],["2","9"]] |
Uso de grupos de captura con nombre
Los captureGroups de la consulta siguiente usan los índices de grupo de captura y las referencias de grupo de captura con nombre para capturar valores coincidentes.
print Id="82b8be2d-dfa7-4bd1-8f63-24ad26d31449"
| extend guid_bytes = extract_all(@"(?P<first>\w)(?P<middle>\w+)(?P<last>\w)", dynamic(['first',2,'last']), Id)
Salida
ID | guid_bytes |
---|---|
82b8be2d-dfa7-4bd1-8f63-24ad26d31449 | [["8","2b8be2","d"],["d","fa","7"],["4","bd","1"],["8","f6","3"],["2","4ad26d3144","9"]] |