SubFieldRegEx() extrae texto de una expresión de cadena de entrada, utilizando el patrón de expresión regular especificado como delimitador. La función devuelve un valor nulo si no se encuentra ninguna coincidencia.
Esta función realiza operaciones regex que distinguen entre mayúsculas y minúsculas. Puede utilizar alternativamente la variante SubFieldRegExI() para realizar operaciones regex sin distinguir mayúsculas de minúsculas.
El texto de la cadena de entrada en la que desea buscar un patrón de expresión regular.
regex_delimiter
Expresión de cadena que contiene la expresión regular que se ha de utilizar como delimitador. Puede especificar más de un delimitador en el mismo patrón de expresión regular separándolos con un carácter | (símbolo vertical).
field_no
Valor entero que indica el número de la subdivisión que desea extraer. Por ejemplo, especifique un valor de 4 para extraer la cuarta subdivisión. Se trata de un argumento opcional.
Lo que sigue se aplica independientemente de si la función se utiliza en un script de carga o en una expresión de gráfico:
Si field_no es positivo, la función devolverá un valor, identificando las coincidencias de izquierda a derecha.
Si field_no es negativo, la función devolverá un valor, identificando las coincidencias de derecha a izquierda.
Cuando utilice la función en un script de carga:
Si utiliza la función SubFieldRegEx() en una sentencia LOAD y se omite field_no, la función genera tantos registros como coincidencias haya.
Si se cargan varios campos mediante SubFieldRegEx() y ninguno de ellos especifica un argumento field_no, se crean los productos cartesianos de todas las combinaciones.
Cuando utilice la función en una expresión de gráfico:
Si se omite field_no, el valor predeterminado es 1.
Ejemplos de funciones
Ejemplo
Resultado
SubFieldRegEx('a,b c;1 2,3',' |,|;', 1)
Devuelve a. En este ejemplo, se especifican tres caracteres delimitadores (espacio, coma y punto y coma).
SubFieldRegEx('a;b;c;1;2;3',';', 2)
Devuelve b. En este caso, solo se especifica un carácter delimitador (punto y coma).
SubFieldRegEx('a,b c;1 2,3',' |,|;', 4)
Devuelve 1.
Cuándo se utiliza
Puede utilizar SubFieldRegEx() para extraer varios valores individuales de una lista delimitada. Por ejemplo, si tiene una lista separada por comas contenida dentro de un bloque más grande de lenguaje natural, puede utilizar esta función para aislar cada valor individual de la lista en un nuevo registro de su modelo de datos.
Ejemplo 1: script de carga para separar etiquetas por transacción
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 Transaction_By_Tag, que contiene inicialmente datos de transacciones. Estos datos se procesan para extraer los valores individuales de las etiquetas en nuevos registros.
La creación de un campo, TransactionTag, para almacenar los valores de las etiquetas extraídas.
En el campo que contiene las etiquetas de transacción, las etiquetas múltiples están contenidas dentro de cadenas de texto, separadas por delimitadores. El delimitador puede ser cualquiera de los siguientes caracteres: , | ;
Script de carga
Transaction_By_Tag:
Load SubFieldRegEx(Tags, ',|;|\|') as TransactionTag,
* Inline [
ID Product Tags Amount
1 Product A Special order,Eligible for return,Warranty included 100.93
2 Product B Ineligible for return|No warranty available 51.11
3 Product C No warranty available 12.83
4 Product B Special order;Liquidation sale;Warranty included 209.48
] (delimiter is '\t');
drop fields Tags;
Resultados
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
ID
Product
TransactionTag
Tabla de resultados
ID
Product
TransactionTag
1
Product A
Eligible for return
1
Product A
Warranty included
1
Product A
Special order
2
Product B
No warranty available
2
Product B
Ineligible for return
3
Product C
No warranty available
4
Product B
Liquidation sale
4
Product B
Special order
4
Product B
Warranty included
Este ejemplo demuestra que cuando se utiliza en un script de carga, SubFieldRegEx() devuelve una fila distinta por cada coincidencia encontrada en la cadena de entrada.
Ejemplo 2: expresiones de gráfico para separar etiquetas por transacción
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 Transaction_By_Tag, que contiene datos de transacciones.
Un campo denominado Tags, que contiene cadenas de texto para almacenar todas las etiquetas asociadas a una transacción.
Nuestros requisitos:
En el campo que contiene las etiquetas de transacción, las etiquetas múltiples están contenidas dentro de cadenas de texto, separadas por delimitadores. El delimitador puede ser cualquiera de los siguientes caracteres: , | ;
Queremos utilizar expresiones de gráfico para separar cada etiqueta en su propio campo, siendo posible añadir hasta tres etiquetas a una transacción.
Script de carga
Transaction_By_Tag:
Load * Inline [
ID Product Tags Amount
1 Product A Special order, Eligible for return, Warranty included 100.93
2 Product B Ineligible for return | No warranty available 51.11
3 Product C No warranty available 12.83
4 Product B Special order;Liquidation sale;Warranty included 209.48
] (delimiter is '\t');
Resultados
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
ID
Tags
Añada estas dimensiones calculadas:
=SubFieldRegEx(Tags, ',|;|\|', 1)
=SubFieldRegEx(Tags, ',|;|\|', 2)
=SubFieldRegEx(Tags, ',|;|\|', 3)
Tabla de resultados
ID
Tags
=SubFieldRegEx(Tags, ',|;|\|', 1)
=SubFieldRegEx(Tags, ',|;|\|', 2)
=SubFieldRegEx(Tags, ',|;|\|', 3)
1
Special order, Eligible for return, Warranty included
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.