Fonctions, arguments et opérateurs
Fonctions
Les règles de filtrage utilisent trois fonctions de base :
-
Find("<text>"), où <text> représente un segment de texte. Un résultat true est obtenu si l’interaction contient le segment exact entre guillemets, peu importe la casse.
-
RegExFind("<regular expression>"),
où <regular expression> représente une expression normale (voir Expressions régulières
).
Un résultat true est obtenu si l’interaction contient un segment correspondant à l’expression régulière entre guillemets.
-
RegExMatch("<regExp>"), où <regular expression> est une expression régulière. Un résultattrue est seulement obtenu si le contenu de l’interaction en entier correspond à l’expression régulière entre guillemets.
Arguments
Chaque fonction doit comporter un argument qui doit être saisi entre guillemets doubles, comme représenté au-dessus de (<text>) ou de (<regular expression>). Cet argument obligatoire peut être suivi d’un ou de deux arguments facultatifs, selon la fonction. La forme complète de chaque fonction, y compris tous les arguments, va comme suit :
- Find("<text>", <IgnoreCase>)
- RegExFind("<regular expression>",<"key">,<IgnoreCase>)
- RegExMatch("<regular expression>",<IgnoreCase)
IgnoreCase
L’argument IgnoreCase doit consister en une valeur booléenne (true ou false). Chacune des trois fonctions ignore la casse lors des recherches, sauf si vous attribuez la valeur false à l’argument IgnoreCase.
Par exemple :
-
Find("pacifique") permet de trouver Pacifique
et pacifique.
-
Find("Pacifique",false) permet de trouver Pacifique,
mais pas pacifique.
Vous pouvez aussi substituer la valeurtrue à la valeur false – par exemple, Find("Pacifique",true)—fait en sorte que la casse est ignorée. Donc, Find("Pacifique",true) équivaut à Find("Pacifique").
Key
L’argument key doit représenter un segment. S’il est présent, le système crée une paire clé-valeur avec les caractéristiques suivantes :
-
Le nom de la clé correspond au segment précisé dans l’argument key, accompagné du préfixe ScrKey_.
-
La valeur représente le contenu avec lequel la règle de filtrage établit une correspondance.
Le système ajoute ensuite cette correspondance clé-valeur aux données attachées de l’interaction.
Par exemple, RegExFind("[A-Z]\d\d\d","ID_code",false) :
-
Trouve les segments composés d’une majuscule suivie de trois chiffres (voir
Expressions régulières)
.
-
Joint à l’interaction une correspondance clé-valeur intituléeScrKey_ID_code dont la valeur est A123, X005, M999 ou tout segment que la fonction aurait trouvé dans l’interaction et qui correspond à l’expression régulière.
Opérateurs
Il existe deux types d’opérateurs :
-
Les opérateurs binaires combinent deux fonctions.
-
Les opérateurs monadiques ont une fonction unique.
&& consiste en l’opérateur binaire "et". Par exemple,
-
Find("taux d’intérêt") && Find("APR",false)
établit uniquement une correspondance avec les messages qui comprennent à la fois "taux d’intérêt" et "APR."
|| consiste en l’opérateur binaire "or." Par exemple,
-
Find("automobile familiale") || Find("décapotable")
établit une correspondance avec tout message qui comprend soit "voiture familiale", soit "décapotable" (ou "Voiture familiale" ou "Voiture familiale" ou "Décapotable").
! est l’opérateur monadique "not." (exclusion) Par example,
-
!Find("fenêtres")
établit une correspondance avec n’importe quel message qui ne comprend pas le mot "fenêtres."
Vous pouvez combiner ! avec un opérateur binaire. Par exemple,
-
Find("oiseau") && !Find("oie")
établit une correspondance avec n’importe quel message qui comprend "oiseau",
mais pas "oie."
Priorité des opérateurs
p && q || r est analysé en tant que (p && q) || r. Prenez l’exemple suivant :
-
Find("dette") && Find("revenu") || Find("profit")
En d’autres mots, la règle de filtrage indique de "trouver X ou de trouver Y,"et X équivaut à "dette" et à"revenu,"tandis qu’Y équivaut à "profit."
Elle repère à la fois "la dette est supérieure au revenu" et "les profits sont spectaculaires".
Vous pouvez modifier la priorité par défaut par un usage explicite de parenthèses, par exemple :
-
Find("dette") && (Find("revenu") || Find("profit"))
La règle de filtrage consiste fondamentalement à "trouver X et Y;" où X signifie "dette" et Y signifie soit "revenu" ou "profit."
Elle permet de trouver à la fois "la dette est supérieure au revenu" et "la dette a une incidence sur le profit".