ExtractRegExGroup - función de script y de gráfico
ExtractRegExGroup() extrae texto de una expresión de cadena de texto introducida utilizando el patrón de expresión regular compuesto que se especifique. Cuando utilice la función, especifique el grupo que se debe utilizar dentro de la regex compuesta. La función devuelve un valor nulo si no se encuentra ninguna coincidencia.
Si utiliza la función ExtractRegExGroup() en una sentencia LOAD y se omite field_no, la función devolverá varios registros. Si se cargan varios campos utilizando ExtractRegExGroup(), se crean los productos cartesianos de todas las combinaciones.
Esta función realiza operaciones regex que distinguen entre mayúsculas y minúsculas. Puede utilizar alternativamente la variante ExtractRegExGroupI() para realizar operaciones regex sin distinguir mayúsculas de minúsculas.
Sintaxis:
ExtractRegExGroup
(text, regex, group [, field_no])
Tipo de datos que devuelve: cadena de texto
Argumentos
Argumento
Descripción
text
Expresión de cadena que contiene el texto que debe extraerse en el valor de retorno.
regex
La expresión regular que utilizar para extraer el texto.
group
El número del grupo, en el caso de una expresión regular compuesta.
Si la expresión regular solo contiene un grupo, utilice en su lugar la función ExtractRegEx(). Como alternativa, utilice ExtractRegExGroup() con un valor de group0 .
Puede especificar un valor negativo group para buscar coincidencias de derecha a izquierda.
field_no
El número de la coincidencia que extraer. Esto resulta útil cuando en el texto pueden encontrarse múltiples coincidencias para la expresión regular. Por ejemplo, especifique un valor de 4 para extraer la cuarta coincidencia.
Se trata de un argumento opcional. De manera predeterminada es 1, si no se especifica.
Devuelve 456 (segundo grupo de la segunda coincidencia).
Cuándo se utiliza
Puede utilizar Extract RegEx() para extraer información que desee aislar de datos que también puedan contener otra información (por ejemplo, texto libre o cadenas JSON).Por ejemplo:
Extraiga direcciones de correo electrónico, números de teléfono, números de cuenta y otra información del texto.
Extraiga valores numéricos de un texto (por ejemplo, divisas).
Estandarice el formato de los datos textuales o numéricos.
Ejemplo 1: script de carga para analizar códigos de transacciones
Descripción
Abra el editor de carga de datos y agregue el script de carga a continuación a una nueva pestaña.
El script de carga contiene:
Una tabla denominada Transactions, que contiene información sobre las transacciones. Ciertos detalles se capturan con códigos de transacción utilizando la siguiente sintaxis:
Año de la transacción-Fuente de la transacción(es decir, compra online o en tienda)-Centro de distribución asociado
La creación de varios campos nuevos para extraer cada detalle, cada uno reutilizando la misma expresión regular compuesta.
Nuestros requisitos:
El año puede ser cualquier combinación de cuatro números.
Los valores ONLINE y INSTORE son los únicos aceptables para el origen de la transacción.
El centro de distribución tiene que tener exactamente cinco dígitos.
Script de carga
Transactions:
Load
recno() as RecordID,
ExtractRegExGroup(TransactionCode,'([0-9]{4})-(ONLINE|INSTORE)-([0-9]{5})',0) as TransactionCode_Unparsed,
ExtractRegExGroup(TransactionCode,'([0-9]{4})-(ONLINE|INSTORE)-([0-9]{5})',1) as TransactionYear,
ExtractRegExGroup(TransactionCode,'([0-9]{4})-(ONLINE|INSTORE)-([0-9]{5})',2) as TransactionSource,
ExtractRegExGroup(TransactionCode,'([0-9]{4})-(ONLINE|INSTORE)-([0-9]{5})',3) as TransactionDC,
* Inline `
TransactionCode, Category
2025-ONLINE-60019, Product A
2024-INSTORE-60020, Product B
2025-ONLINE-60018, Product C
2024-ONLINE-60020, Product A
2025-INSTORE-60019, Product B
2025-ONLINE-60017, Product D
`;
Resultados
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
RecordID
TransactionCode
TransactionCode_Unparsed
TransactionYear
TransactionSource
TransactionDC
Tabla de resultados
RecordID
TransactionCode
TransactionCode_Unparsed
TransactionYear
TransactionSource
TransactionDC
1
2025-ONLINE-60019
2025-ONLINE-60019
2025
ONLINE
60019
2
2024-INSTORE-60020
2024-INSTORE-60020
2024
INSTORE
60020
3
2025-ONLINE-60018
2025-ONLINE-60018
2025
ONLINE
60018
4
2024-ONLINE-60020
2024-ONLINE-60020
2024
ONLINE
60020
5
2025-INSTORE-60019
2025-INSTORE-60019
2025
INSTORE
60019
6
2025-ONLINE-60017
2025-ONLINE-60017
2025
ONLINE
60017
Estos resultados ponen de relieve cómo el argumento group permite reutilizar una única expresión regular para múltiples operaciones. El campo TransactionCode_Unparsed, que utiliza un valor group de 0, no proporciona ningún valor adicional en este caso, pero se muestra aquí con el propósito de demostrar la función.
Ejemplo 2: script de carga para extraer información sobre contactos comerciales
Descripción
Abra el editor de carga de datos y agregue el script de carga a continuación a una nueva pestaña.
El script de carga contiene:
Una tabla denominada BusinessContactInfo, que contiene información sobre las empresas que se encontró en el sitio web de cada una de ellas.
ContactInfo es un campo que contiene texto libre, incluidas direcciones de correo electrónico y números de teléfono de empresas.
La creación de varios campos nuevos para extraer cada detalle, cada uno reutilizando la misma expresión regular compuesta.
Nuestros requisitos:
Las direcciones de correo electrónico deben cumplir una serie de requisitos y una sintaxis específicos.
Los números de teléfono deben ser números de teléfono NANP con 10 dígitos. Queremos permitir que el prefijo figure entre paréntesis y que haya espacios en blanco y guiones en determinados puntos.
Script de carga
BusinessContactInfo:
Load
ExtractRegExGroupI(ContactInfo, '([a-zA-Z0-9!#$%^&*-_+=~{|}\/.'']+@[a-zA-Z0-9!#$%^&*-_+=~{|}\/.'']{1,50}\.[a-zA-Z0-9!#$%^&*\-_+=~{|}\/.'']{1,50})|(\({0,1}[0-9]{3}\){0,1}[ -]*[0-9]{3}[ -]*[0-9]{4})',1,1) as CompanyEmail,
ExtractRegExGroupI(ContactInfo, '([a-zA-Z0-9!#$%^&*-_+=~{|}\/.'']+@[a-zA-Z0-9!#$%^&*-_+=~{|}\/.'']{1,50}\.[a-zA-Z0-9!#$%^&*\-_+=~{|}\/.'']{1,50})|(\({0,1}[0-9]{3}\){0,1}[ -]*[0-9]{3}[ -]*[0-9]{4})',2,2) as CompanyPhoneNum,
* Inline `
ID CompanyName ContactInfo
1 Company A Email is: Company1@example.com, Phone number is: (123) 456-7890
2 Company B Email is: company2@test.com, Phone # is: 0123456790
3 Company C Email is: company3@placeholder.com, Phone no. is: 234-567-8901
` (delimiter is '\t');
Resultados
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
CompanyName
CompanyEmail
CompanyPhoneNum
Tabla de resultados
CompanyName
CompanyEmail
CompanyPhoneNum
Company A
Company1@example.com
(123) 456-7890
Company B
company2@test.com
0123456790
Company C
company3@placeholder.com
234-567-8901
La misma expresión regular compuesta se reutiliza para recuperar información diferente. El argumento group especifica cuál de los dos grupos de la expresión regular hay que buscar y el argumento field_no especifica la coincidencia global (en toda la cadena) que queremos encontrar.
La variante ExtractRegEGroupxI() de la función garantiza búsquedas sin distinción entre mayúsculas y minúsculas.
Ejemplo 3: script de carga para extraer componentes de los códigos ISBN
Descripción
Abra el editor de carga de datos y agregue el script de carga a continuación a una nueva pestaña.
El script de carga contiene:
La creación de una variable, ISBN_RegEx, para almacenar la expresión regular que queremos utilizar para todas las extracciones.
Un conjunto de códigos ISBN para libros que una librería quiere encargar a varios proveedores.
Tenemos que extraer lo siguiente de cada código ISBN:
EAN
Grupo
Registrante
Publicación
Suma de verificación
Script de carga
SET ISBN_RegEx = 'ISBN[ ]*([0-9]{3})-([0-9]{1})-([0-9]{4})-([0-9]{4})-([0-9]{1})';
ISBN:
LOAD Supplier,
ExtractRegExGroup(Books,'$(ISBN_RegEx)',1) AS EAN,
ExtractRegExGroup(Books,'$(ISBN_RegEx)',2) AS Group,
ExtractRegExGroup(Books,'$(ISBN_RegEx)',3) AS Registrant,
ExtractRegExGroup(Books,'$(ISBN_RegEx)',4) AS Publication,
ExtractRegExGroup(Books,'$(ISBN_RegEx)',5) AS Checksum;
// Split the ISBN with the Group function in a preceding load to avoid generating a cartesian product
LOAD *,
ExtractRegEx(SupplierBooks, '$(ISBN_RegEx)') AS Books
INLINE [
Supplier, SupplierBooks
Supplier 1, ISBN 123-3-1234-1234-0 ISBN 012-2-0123-0123-4 ISBN 000-1-0123-0123-2 ISBN 234-5-2345-2345-1 ISBN 555-2-5555-5555-3 ISBN 222-4-2222-2222-2
Supplier 2, ISBN 000-0-3333-3333-3 ISBN 333-3-3333-3333-3 ISBN 555-1-5151-5151-3 ISBN 232-1-2323-2323-1 ISBN 008-0-7777-7777-3 ISBN 888-0-9999-0000-0
];
Resultados
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
Supplier
EAN
Group
Registrant
Publication
Checksum
Tabla de resultados
Supplier
EAN
Group
Registrant
Publication
Checksum
Supplier 1
000
1
0123
0123
2
Supplier 1
012
2
0123
0123
4
Supplier 1
123
3
1234
1234
0
Supplier 1
222
4
2222
2222
2
Supplier 1
234
5
2345
2345
1
Supplier 1
555
2
5555
5555
3
Supplier 2
000
0
3333
3333
3
Supplier 2
008
0
7777
7777
3
Supplier 2
232
1
2323
2323
1
Supplier 2
333
3
3333
3333
3
Supplier 2
555
1
5151
5151
3
Supplier 2
888
0
9999
0000
0
Ejemplo 4: expresiones de gráfico para extraer información sobre contactos comerciales (con comparación ExtractRegEx())
Descripción
Abra el editor de carga de datos y agregue el script de carga a continuación a una nueva pestaña.
El script de carga contiene:
Una tabla denominada BusinessContactInfo, que contiene información sobre las empresas que se encontró en el sitio web de cada una de ellas.
ContactInfo es un campo que contiene texto libre, incluidas direcciones de correo electrónico y números de teléfono de empresas. Queremos extraer cada dirección de correo electrónico y número de teléfono con expresiones de gráfico.
Nuestros requisitos:
Las direcciones de correo electrónico deben cumplir una serie de requisitos y una sintaxis específicos.
Los números de teléfono deben ser números de teléfono NANP con 10 dígitos. Queremos permitir que el prefijo figure entre paréntesis y que haya espacios en blanco y guiones en determinados puntos.
Script de carga
BusinessContactInfo:
Load * Inline `
ID CompanyName ContactInfo
1 Company A Email is: Company1@example.com, Phone number is: (123) 456-7890
2 Company B Email is: company2@test.com, Phone # is: 0123456790
3 Company C Email is: company3@placeholder.com, Phone no. is: 234-567-8901
` (delimiter is '\t');
Resultados
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue este campo como dimensión:
CompanyName
Añada las siguientes dimensiones calculadas a la tabla:
La misma expresión regular compuesta se reutiliza para recuperar información diferente. El argumento group especifica cuál de los dos grupos de la expresión regular hay que buscar, y el argumento field_no especifica la coincidencia global (en toda la cadena) que queremos encontrar.
La variante ExtractRegEGroupI() de la función garantiza búsquedas sin distinción entre mayúsculas y minúsculas.
Ejemplo 5: análisis sintáctico de varias URL (con comparación ExtractRegEx() )
Descripción
Abra el editor de carga de datos y agregue el script de carga a continuación a una nueva pestaña.
El script de carga contiene:
Una tabla denominada Correspondence, que contiene el texto del mensaje de correo electrónico en un campo denominado EmailBody.
Contenido del mensaje de correo electrónico que contiene las URL web.
Queremos extraer la segunda URL, si está presente, e introducirla en los siguientes componentes:
URL completa
Protocolo
Dominio
Ruta
Queremos utilizar una única expresión regular para controlar toda la extracción.
Script de carga
Correspondence:
Load * Inline `
ID EmailBody
1 Thanks again for this morning's meeting! You can find the meeting minutes posted here: https://example.com/resourceexample. If you still have any questions, always feel free to ask me or one of the other team members. Here are a few learning resources that might help you: http://www.example.ca/training1.pptx http://www.example.ca/training2.pptx http://www.example.ca/training3.pptx Thanks again!
2 Hi, you'll want to visit our company website for that, it's available at https://www.example.se.
3 Hello all, I just wanted to let you know that our online stores are now up and running! I couldn't be more excited. We are already seeing quite a bit of traffic and volume sold, which is very promising! For Product A, go to https://www.examplestore1.com/products. For Product B, you'll want go to https://www.examplestore2.com/products. Product C, go check out https://www.examplestore3.com/products. Cheers!
` (delimiter is '\t');
Resultados
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue este campo como dimensión:
ExtractRegEx() devuelve la URL completa, mientras que ExtractRegExGroup() devuelve partes individuales de la URL, correspondientes al valor de group que hayamos utilizado. El registro con un valor de ID de 2 sólo contiene una URL, por lo que no se devuelve ningún dato sobre él.
En todas las expresiones de gráfico se utiliza la misma expresión regular para devolver distintos datos. El desglose de los grupos definidos en la expresión regular es el siguiente.
No dude en indicarnos en qué podemos mejorar si encuentra algún problema en esta página o su contenido, como, por ejemplo, errores tipográficos, pasos que falta o errores técnicos.