Ich habe mich kürzlich mit Ghoti freundschaftlich darüber gestritten, was in den Kommentaren zu meiner Antwort auf diese Frage ein regulärer Ausdruck ist . Ich habe behauptet, dass das Folgende ein regulärer Ausdruck ist:
`[Rr]eading[Tt]est[Dd]ata`
Ghoti war anderer Meinung und behauptete, es sei stattdessen ein Dateiglob. Die Glob- Seite auf Wikipedia behauptet, dass (Hervorhebung von mir):
Globs enthalten keine Syntax für den Kleene-Stern, die mehrere Wiederholungen des vorhergehenden Teils des Ausdrucks ermöglicht. Daher werden sie nicht als reguläre Ausdrücke betrachtet, die einen größeren Satz regulärer Sprachen über ein bestimmtes endliches Alphabet beschreiben können.
Es gibt jedoch kein Zitat für diese Behauptung, was darauf hinweist, dass es sich nur um die Meinung eines bestimmten Wikipedia-Herausgebers handelt.
Die Single UNIX ® -Spezifikation, Version 2 , besagt, dass ein Basic Regular Expression (BRE) sogar ein einzelnes Zeichen sein kann:
Ein gewöhnliches Zeichen ist ein BRE, das mit sich selbst übereinstimmt: Jedes Zeichen im unterstützten Zeichensatz, mit Ausnahme der in BRE-Sonderzeichen aufgeführten BRE-Sonderzeichen.
Was ist also die Definition eines regulären Ausdrucks in der * nix-Welt und schließt diese Definition Dateiglob aus?
*
Hat zum Beispiel zwei verschiedene Bedeutungen in BRE und Globs. Hinweis: Ich glaube nicht , der Begriff glob überall in der POSIX - Spezifikation verwendet wird - es ist Pattern Matching statt genannt und beschrieben in dem Shell - Sprache Kapitel.
grep
,sed
undawk
. Vim verwendet seine eigene Sorte, ebenso wie Perl.