re.capture
re.capture(stringText, regex)
Descrizione
Acquisisce (estrae) i dati da una stringa utilizzando il pattern di espressione regolare fornito nell'argomento.
Questa funzione accetta due argomenti:
stringText
: la stringa originale da cercare.regex
: l'espressione regolare che indica il pattern da cercare.
L'espressione regolare può contenere 0 o 1 gruppi di acquisizione tra parentesi. Se l'espressione regolare contiene 0 gruppi di acquisizione, la funzione restituisce la prima sottostringa corrispondente intera. Se l'espressione regolare contiene un gruppo Capture, restituisce la prima sottostringa corrispondente per il gruppo Capture. La definizione di due o più gruppi di acquisizione restituisce un errore del compilatore.
Tipi di dati dei parametri
STRING
, STRING
Tipo restituito
STRING
Esempi di codice
Esempio 1
In questo esempio, se $e.principal.hostname
contiene "aaa1bbaa2", la seguente condizione è vera perché la funzione
restituisce la prima istanza. Questo esempio non ha gruppi di acquisizione.
"aaa1" = re.capture($e.principal.hostname, "a+[1-9]")
Esempio 2
Questo esempio acquisisce tutto ciò che segue il simbolo @ in un'email. Se il
campo $e.network.email.from
è test@google.com
, l'esempio restituisce
google.com
. L'esempio seguente contiene un gruppo di acquisizione.
"google.com" = re.capture($e.network.email.from , "@(.*)")
Esempio 3
Se l'espressione regolare non corrisponde ad alcuna sottostringa nel testo, la funzione restituisce una stringa vuota. Puoi omettere gli eventi in cui non si verifica alcuna corrispondenza
escludendo la stringa vuota, il che è particolarmente importante quando
utilizzi re.capture()
con una disuguaglianza:
// Exclude the empty string to omit events where no match occurs.
"" != re.capture($e.network.email.from , "@(.*)")
// Exclude a specific string with an inequality.
"google.com" != re.capture($e.network.email.from , "@(.*)")