J'utilise RegEx Buddy pour prototyper et déboguer mes expressions régulières. RegEx Buddy me permet de choisir entre différents types de moteurs d'expression régulière (.NET, Java, Perl, GNU BRE, GNU ERE, POSIX, BRE, POSIX ERE, etc.).
Quel moteur d'expression régulière utilise bash (par exemple dans les instructions if
et case
)? J'utilise 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?
Bash n'utilise aucun des types d'expressions régulières ci-dessus dans
if
lescase
instructions et.Au contraire, il utilise des modèles de globes shell, qui sont moins puissants que tout type d'expression régulière. Des versions relativement nouvelles de bash permettent également l'utilisation de modèles glob étendus qui sont expressivement égaux à des expressions régulières sans ancres (en ligne) mais incluant des termes négatifs, mais avec une syntaxe différente de n'importe lequel des types d'expression régulière mentionnés ci-dessus.
Notez cependant que les globs shell étendus doivent être activés avant utilisation avec les
shopt -s extglob
deux dans un script shell ou de manière interactive.Dans un seul endroit exceptionnel, à savoir au sein de la
[[ ]]
commande conditionnelle, la=~
relation binaire permet de vérifier une chaîne du côté gauche contre une expression régulière étendue ERE du côté droit.la source
Selon le guide Bash lié, Bash (depuis la version 3.0+) utilise: "le dialecte de l' expression régulière étendue (ERE) ".
Vous trouverez plus d'informations sur ce dialecte ici .
la source