Passa al contenuto principale
Workday User Guide
Ultimo aggiornamento: 2023-06-23
REGEX

REGEX

Descrizione

REGEX
è una funzione di riga che esegue una corrispondenza di intera stringa con a
TEXT
value con un'espressione regolare e restituisce la parte della stringa corrispondente al primo gruppo di acquisizione dell'espressione regolare.

Sintassi

REGEX
(
string_expression
,"
regex_matching_pattern
")

Valore restituito

Restituisce la corrispondenza
TEXT
valore del primo gruppo di acquisizione dell'espressione regolare. Se non è presente alcuna corrispondenza, restituisce
NULL
.

Parametri di input

string_expression
Sono obbligatori. Il nome di un campo o di un'espressione di tipo
TEXT
(o una stringa letterale).
regex_matching_pattern
Sono obbligatori. Un modello di espressione regolare basato sulla sintassi di corrispondenza del modello di espressione regolare del linguaggio di programmazione Java. Per restituire un valore diverso da NULL, il modello dell'espressione regolare deve corrispondere all'intero
TEXT
valore

Costrutti espressione regolare

Consultare i riferimenti alle espressioni regolari per informazioni sui costrutti utilizzati per definire un modello di corrispondenza delle espressioni regolari.

Gruppi di acquisizione e non di acquisizione

I gruppi sono specificati da una coppia di parentesi attorno a un modello secondario nell'espressione regolare. Un modello può avere più di un gruppo e i gruppi possono essere nidificati. I gruppi sono numerati da 1
a n
da sinistra a destra, a partire dalla prima parentesi aperta. È sempre presente un gruppo implicito 0, che contiene l'intera corrispondenza. Ad esempio, il modello:
(a(b*))+(c)
contiene tre gruppi:
group 1: (a(b*)) group 2: (b*) group 3: (c)
Acquisizione di gruppi
Per impostazione predefinita, un gruppo
acquisisce
il testo che genera una corrispondenza e viene acquisita solo la corrispondenza più recente. Il
REGEX
La funzione restituisce la stringa che corrisponde al primo gruppo di acquisizione nell'espressione regolare. Ad esempio, se la stringa di input per l'espressione precedente era
abc
, l'intero
REGEX
la funzione corrisponderebbe a
abc
, ma restituisce solo il risultato del gruppo 1, ovvero
ab
.
Gruppi non di acquisizione
In alcuni casi, è possibile utilizzare le parentesi per raggruppare i sottomodelli, ma non per acquisire il testo. Un gruppo non di acquisizione inizia con
(?:
(un punto interrogativo e due punti dopo la parentesi aperta). Ad esempio,
h(?:a|i|o)t
corrispondenze
hat
o
hit
o
hot
, ma non acquisisce il
a
,
i
, o
o
dalla sottoespressione.

Esempi

Abbina tutti i possibili indirizzi e-mail con uno schema di
nome utente
@
provider
.
domain
, ma restituisce solo la parte
del provider
dell'indirizzo e-mail dal campo
e-mail
:
REGEX([email], "^[a-zA-Z0-9._%+-]+@
([a-zA-Z0-9._-]+)
\.[a-zA-Z]{2,4}$")
Abbina la riga di richiesta di un registro Web, in cui il valore ha il formato:
GET /some_page.html HTTP/1.1
e restituiscono solo i nomi di pagina HTML richiesti:
REGEX([weblog_request_line], "GET\s/
([a-zA-Z0-9._%-]+\.[html])
\sHTTP/[0-9.]+")
Estrarre la parte in pollici da a
height
campo in cui si trovano i valori di esempio
6'2"
,
5'11"
(notare l'escape della virgoletta letterale con virgolette doppie):
REGEX([height], "\d\'(\d)+""")
Estrarre tutto il contenuto di
device
quando il valore è uno dei due
iPod
,
iPad
, o
iPhone
:
REGEX([device], "(iP[ao]d|iPhone)")