REGEX
Descripción
REGEX
es una función de fila que realiza una coincidencia de cadena completa con un TEXT
value con una expresión regular y devuelve la parte de la cadena que coincide con el primer grupo de captura de la expresión regular.Sintaxis
REGEX
(string_expression
,"regex_matching_pattern
")Valor devuelto
Devuelve el valor coincidente
TEXT
el valor del primer grupo de captura de la expresión regular. Si no hay ninguna coincidencia, devuelve NULL
. Parámetros de entrada
- string_expression
- Es obligatorio. El nombre de un campo o expresión de tipoTEXT(o una cadena literal).
- regex_matching_pattern
- Es obligatorio. Un patrón de expresión regular basado en la sintaxis de coincidencia de patrón de expresión regular del lenguaje de programación Java. Para devolver un valor distinto de NULL, el patrón de expresión regular debe coincidir con todo elTEXTvalor
Construcciones de expresiones regulares
Consulte la Referencia de expresiones regulares para obtener información sobre las construcciones utilizadas para definir un patrón de coincidencia de expresión regular.
Grupos con captura y sin captura
Los grupos se especifican mediante un par de paréntesis alrededor de un subpatrón en la expresión regular. Un patrón puede tener más de un grupo y los grupos pueden estar anidados. Los grupos se numeran del 1 al
n
de izquierda a derecha, comenzando por el primer paréntesis de apertura. Siempre hay un grupo implícito 0, que contiene la coincidencia completa. Por ejemplo, el patrón: (a(b*))+(c)
contiene tres grupos:
group 1: (a(b*)) group 2: (b*) group 3: (c)
Captura de grupos
Por defecto, un grupo
captura
el texto que genera una coincidencia y solo se captura la coincidencia más reciente. El REGEX
La función devuelve la cadena que coincide con el primer grupo de captura en la expresión regular. Por ejemplo, si la cadena de entrada de la expresión anterior fuera abc
, todo el REGEX
la función coincidiría con abc
, pero solo devuelven el resultado del grupo 1, que es ab
. Grupos sin captura
En algunos casos, es posible que desee utilizar paréntesis para agrupar subpatrones, pero no capturar texto. Un grupo sin captura comienza con
(?:
(un signo de interrogación y dos puntos después del paréntesis de apertura). Por ejemplo, h(?:a|i|o)t
coincidencias hat
o hit
o hot
, pero no captura el a
, i
, o o
de la subexpresión. Ejemplos
Haga coincidir todas las direcciones de correo electrónico posibles con un patrón de nombre de
usuario
@proveedor
.domain
, pero solo devuelven la parte del proveedor
de la dirección de correo electrónico del campo de correo electrónico
:REGEX([email], "^[a-zA-Z0-9._%+-]+@
([a-zA-Z0-9._-]+)
\.[a-zA-Z]{2,4}$")Cotejar la línea de solicitud de un registro web, donde el valor tiene el siguiente formato:
y devolver solo los nombres de página HTML solicitados:GET /some_page.html HTTP/1.1
REGEX([weblog_request_line], "GET\s/
([a-zA-Z0-9._%-]+\.[html])
\sHTTP/[0-9.]+")Extraiga la parte de pulgadas de un
height
campo donde están los valores de ejemplo 6'2"
, 5'11"
(observe el escape de la comilla literal con una doble comilla doble):REGEX([height], "\d\'(\d)+""")
Extraer todo el contenido de la
device
cuando el valor es iPod
, iPad
, o iPhone
:REGEX([device], "(iP[ao]d|iPhone)")