re.capture
re.capture(stringText, regex)
Description
Capture (extrait) des données d'une chaîne à l'aide du modèle d'expression régulière fourni dans l'argument.
Cette fonction utilise deux arguments :
stringText
: chaîne d'origine à rechercher.regex
: expression régulière indiquant le modèle à rechercher.
L'expression régulière peut contenir zéro ou un groupe de capture entre parenthèses. Si l'expression régulière ne contient aucun groupe de capture, la fonction renvoie la première sous-chaîne correspondante complète. Si l'expression régulière contient un groupe de capture, elle renvoie la première sous-chaîne correspondante pour le groupe de capture. Définir deux groupes de capture ou plus renvoie une erreur de compilation.
Types de données des paramètres
STRING
– STRING
Type renvoyé
STRING
Exemples de code
Exemple 1
Dans cet exemple, si $e.principal.hostname
contient "aaa1bbaa2", l'instruction suivante sera vraie, car la fonction renvoie la première instance. Cet exemple ne comporte aucun groupe de capture.
"aaa1" = re.capture($e.principal.hostname, "a+[1-9]")
Exemple 2
Cet exemple capture tout ce qui se trouve après le symbole @ dans une adresse e-mail. Si le champ $e.network.email.from
est test@google.com
, l'exemple renvoie google.com
. L'exemple suivant contient un groupe de capture.
"google.com" = re.capture($e.network.email.from , "@(.*)")
Exemple 3
Si l'expression régulière ne correspond à aucune sous-chaîne du texte, la fonction renvoie une chaîne vide. Vous pouvez omettre les événements pour lesquels aucune correspondance n'est trouvée en excluant la chaîne vide. Cela est particulièrement important lorsque vous utilisez re.capture()
avec une inégalité :
// 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 , "@(.*)")