$rsearch

Utilisation : $rsearch(texte,motif[,groupe])
Catégorie : texte

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"