Ir para o conteúdo principal
Workday User Guide
Última atualização: 2023-06-23
REGEX

REGEX

Descrição

REGEX
é uma função de linha que executa uma correspondência de cadeia de caracteres inteira em relação a um
TEXT
com uma expressão regular e retorna a parte da cadeia de caracteres que corresponde ao primeiro grupo de captura da expressão regular.

Sintaxe

REGEX
(
string_expression
,"
regex_matching_pattern
")

Valor de retorno

Retorna a correspondência de
TEXT
do primeiro grupo de captura da expressão regular. Se não há correspondência, retorna
NULL
.

Parâmetros de entrada

string_expression
É obrigatório. O nome de um campo ou uma expressão do tipo
TEXT
(ou uma cadeia de caracteres literal).
regex_matching_pattern
É obrigatório. Um padrão de expressão regular com base na sintaxe de correspondência de padrão de expressão regular da linguagem de programação Java. Para retornar um valor não NULL, o padrão de expressão regular deve corresponder a todo o
TEXT
Valor

Construções de expressão regular

Consulte a Referência de expressões regulares para obter informações sobre os construtores usados para definir um padrão de correspondência de expressão regular.

Grupos de captura e não de captura

Os grupos são especificados por um par de parênteses ao redor de um subpadrão na expressão regular. Um padrão pode ter mais de um grupo e os grupos podem estar aninhados. Os grupos estão numerados de 1 a
n,
da esquerda para a direita, começando com o primeiro parêntese de abertura. Sempre há um grupo implícito 0, que contém a correspondência inteira. Por exemplo, o padrão:
(a(b*))+(c)
contém três grupos:
group 1: (a(b*)) group 2: (b*) group 3: (c)
Captura de grupos
Por padrão, um grupo
captura
o texto que produz uma correspondência e somente a correspondência mais recente é capturada. O
REGEX
A função retorna a cadeia de caracteres que corresponde ao primeiro grupo de captura na expressão regular. Por exemplo, se a cadeia de caracteres de entrada da expressão acima foi .
abc
, todo o
REGEX
a função corresponderia a
abc
, mas retornam somente o resultado do grupo 1, que é .
ab
.
Grupos que não capturam
Em alguns casos, você pode usar parênteses para agrupar subpadrão, mas não para capturar texto. Um grupo sem captura começa com
(?:
(um ponto de interrogação e dois pontos após o parêntese de abertura). Por exemplo,
h(?:a|i|o)t
correspondências
hat
ou
hit
ou
hot
, mas não captura os
a
,
i
, ou
o
da subexpressão.

Exemplos

Faça a correspondência de todos os endereços de e-mail possíveis com o padrão de
nome de usuário
do
provedor
.
domínio
, mas retorna apenas a parte do
provedor
do endereço de e-mail do campo
de e-mail
:
REGEX([email], "^[a-zA-Z0-9._%+-]+@
([a-zA-Z0-9._-]+)
\.[a-zA-Z]{2,4}$")
Faça a correspondência da linha de solicitação de um registro da Web, em que o valor está no formato:
GET /some_page.html HTTP/1.1
e retorna somente os nomes de página HTML solicitados:
REGEX([weblog_request_line], "GET\s/
([a-zA-Z0-9._%-]+\.[html])
\sHTTP/[0-9.]+")
Extraia a parte das polegadas de uma
height
campo em que os valores de exemplo são
6'2"
,
5'11"
(observe o escape da aspa literal com aspas duplas):
REGEX([height], "\d\'(\d)+""")
Extraia todo o conteúdo do
device
quando o valor é
iPod
,
iPad
, ou
iPhone
:
REGEX([device], "(iP[ao]d|iPhone)")