Jutilise RegEx Buddy pour prototyper et déboguer mes expressions régulières. RegEx Buddy me permet de choisir entre plusieurs types de moteurs dexpressions régulières (.NET, Java, Perl, GNU BRE, GNU ERE, POSIX, BRE, POSIX ERE, etc.).
Ce que fait le moteur dexpressions régulières bash use (par exemple dans les instructions if
et case
)? Jexécute Centos 5.5 32 bits et bash 3.2.25 (1):
[kevin@mon01 scratch]$ bash --version GNU bash, version 3.2.25(1)-release (i686-redhat-linux-gnu) Copyright (C) 2005 Free Software Foundation, Inc.
Je suppose que ce sera GNU BRE ou GNU ERE?
Réponse
bash (et les shells POSIX en général) nutilisent pas dexpressions régulières dans case
, plutôt glob patterns .
La prise en charge des expressions régulières utilisant le ; voir les détails à: http://mywiki.wooledge.org/BashGuide/Patterns ,
qui dit que bash
utilise des expressions régulières étendues (ERE).
Commentaires
- Merci. Le deuxième lien mentionne ERE qui, je suppose, est GNU ERE.
Réponse
Bash nutilise aucun des les types dexpressions régulières ci-dessus dans les instructions if
et case
.
Il utilise plutôt des modèles de shell glob , qui sont moins puissants que tout type dexpression régulière. Les versions relativement nouvelles de bash permettent également lutilisation de modèles globaux étendus qui sont expressivement égaux aux expressions régulières sans ancres (de ligne) mais comprenant des termes négatifs, mais avec une syntaxe différente de celle de les types dexpressions régulières mentionnés ci-dessus.
Notez cependant que les globes shell étendus doivent être activés avant une utilisation avec shopt -s extglob
à la fois dans un script shell ou de manière interactive.
Dans un seul lieu exceptionnel, à savoir dans la commande conditionnelle [[ ]]
, la relation binaire =~
permet de vérifier une chaîne à gauche côté contre un régulier prolongé expression ERE sur le côté droit.
Réponse
Selon le guide lié à Bash, Bash (depuis la version 3.0+) utilise: « le Expression régulière étendue (ERE) dialecte. »
Vous trouverez plus dinformations sur ce dialecte ici .