$rsearch
Description:
Recherche d’expression régulière. Cette fonction renverra le premier groupe correspondant spécifié par motif
à partir de texte
. Pour plus d’informations sur les expressions régulières, veuillez consulter l’article sur Wikipedia.
Si une sous-expression marquée est définie à l’aide de parenthèses dans le modèle de recherche, seul le modèle capturé par la sous-expression sera renvoyé. Si plus d’une sous-expression marquée est définie et mise en correspondance, seul le modèle capturé par la première sous-expression sera renvoyé. Si plus d’une sous-expression marquée est définie et que toutes ne correspondent pas, une chaîne vide sera renvoyée. Si aucune sous-expression n’est spécifiée, le modèle capturé par l’expression de recherche entière sera retourné.
Si le paramètre facultatif « group » n’est pas fourni ou est vide, renvoie le premier groupe de capture qui correspond à quelque chose (y compris la chaîne vide) ou la correspondance entière.
Si « group » est un nombre entier, renvoie le groupe de capture à la position correspondant à ce nombre entier. Sinon, renvoie le groupe de capture nommé « group », sans les espaces blancs qui l’entourent.
Note
Lorsque vous saisissez des expressions régulières dans des scripts Picard, vous devez échapper la barre oblique inversée « \ », le signe dollar « $ », la virgule « , » et les parenthèses gauche et droite « ( » et « ) » afin de forcer Picard à ne pas les interpréter comme faisant partie de la commande du script. Cela se fait en insérant une barre oblique inverse avant le caractère à échapper. Par exemple, l’expression régulière ^\s*([0-9,\.]*)$
doit être saisie comme ^\\s*\([0-9\,\\.]*\)\$
.
Note
L’argument « group » a été ajouté dans Picard v2.14.
Exemple:
Les instructions suivantes renverront les valeurs indiquées :
$rsearch(test \(disc 1\),\\\(disc \(\\d+\)\\\)) ==> "1"
$rsearch(test \(disc 1\),\\\(disc \\d+\\\)) ==> "(disc 1)"
$rsearch(test,x) ==> ""
$rsearch(test,t) ==> "t"
$rsearch(test,s) ==> "s"
$rsearch(test,\(e\).*s) ==> "e"
$rsearch(test,\(e\).*\(s\)) ==> "e"
$rsearch(test,\(e\).*x) ==> ""
$rsearch(test,\(e\).*\(x\)) ==> ""
$rsearch(disc: 3,\(\\w+\): \(\\d+\),1) ==> "disc"
$rsearch(disc: 3,\(\\w+\): \(\\d+\),2) ==> "3"