extract_all()

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()

Syntax

extract_all(Regex, [captureGroups,] Fuente)

Obtenga más información sobre las convenciones de sintaxis.

Parámetros

Nombre Tipo Requerido 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 son 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 de 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 capturas

La consulta siguiente devuelve una representación hexadecimal (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 la última parte.

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"]]