Stations de travail en ligne OnWorks Linux et Windows

Logo

Hébergement gratuit en ligne pour les postes de travail

<Précédent | Table des matières | Suivant>

Vs de base POSIX. Expressions régulières étendues

Juste au moment où nous pensions que cela ne pouvait pas être plus confus, nous découvrons que POSIX divise également les implémentations d'expressions régulières en deux types : expressions régulières de base (BRE) ainsi que expressions régulières étendues (ERE). Les fonctionnalités que nous avons couvertes jusqu'à présent sont prises en charge par toute application conforme à POSIX et implémentant BRE. Notre grep programme est l'un de ces programmes.

Quelle est la différence entre BRE et ERE ? C'est une question de métacaractères. Avec BRE, les métacaractères suivants sont reconnus :

^$. [ ] *

Tous les autres caractères sont considérés comme des littéraux. Avec ERE, les métacaractères suivants (et leurs fonctions associées) sont ajoutés :

( ) { } ? + |

Cependant (et c'est la partie amusante), les caractères "(", ")", "{" et "}" sont traités comme des métacaractères dans BRE if ils sont échappés avec une barre oblique inverse, alors qu'avec ERE, faire précéder tout métacaractère d'une barre oblique inverse le fait être traité comme un littéral. Toute bizarrerie qui se présente sera abordée dans les discussions qui suivront.

image

Étant donné que les fonctionnalités dont nous allons discuter ensuite font partie d'ERE, nous devrons utiliser un autre grep. Traditionnellement, cela a été effectué par le égrep programme, mais la version GNU de grep prend également en charge les expressions régulières étendues lorsque le -E l'option est utilisée.


POSIX

Au cours des années 1980, Unix est devenu un système d'exploitation commercial très populaire, mais en 1988, le monde Unix était dans la tourmente. De nombreux fabricants d'ordinateurs avaient concédé sous licence le code source Unix à ses créateurs, AT&T, et fournissaient diverses versions du système d'exploitation avec leurs systèmes. Cependant, dans leurs efforts pour créer une différenciation des produits, chaque fabricant a ajouté des modifications et des extensions exclusives. Cela a commencé à limiter la compatibilité du logiciel. Comme toujours avec

image

Vs de base POSIX. Expressions régulières étendues


fournisseurs propriétaires, chacun essayait de jouer un jeu gagnant de « verrouillage » avec ses clients. Cette période sombre de l'histoire d'Unix est connue aujourd'hui sous le nom de "la balkanisation. »

Entrez dans l'IEEE (Institut des ingénieurs électriciens et électroniciens). Au milieu des années 1980, l'IEEE a commencé à développer un ensemble de normes qui définiraient les performances des systèmes Unix (et similaires à Unix). Ces normes, officiellement connues sous le nom d'IEEE 1003, définissent les interfaces de programmation d'applications (API), shell et utilitaires que l'on trouve sur un système standard de type Unix. Le nom « POSIX », qui signifie Interface de système d'exploitation portable (avec le « X » ajouté à la fin pour plus de vivacité), a été suggéré par Richard Stallman (oui, qui Richard Stallman), et a été adopté par l'IEEE.


Meilleur système d'exploitation Cloud Computing chez OnWorks :