Mit Terminal: Reguläre Ausdrücke verwenden

Eines der Dinge, die ich am Linux-Terminal immer geliebt habe, ist das, was Sie mit regulären Ausdrücken erreichen können. Unabhängig davon, ob wir komplizierten Text finden oder durch etwas anderes ersetzen müssen, kann die Verwendung regulärer Ausdrücke die Arbeit erheblich vereinfachen. Beginnen wir am Anfang:

WARNUNG: Dieser Beitrag ist ein Schmerz im Arsch. Das ständige Lesen dieses Beitrags kann zu Bewusstlosigkeit führen. Machen Sie zwischendurch Pausen oder fragen Sie Ihren Arzt oder Apotheker, bevor Sie den gesamten Beitrag lesen.

Was ist ein regulärer Ausdruck?

Ein regulärer Ausdruck ist eine Reihe von Sonderzeichen, mit denen wir einen Text beschreiben können, den wir finden möchten. Wenn wir beispielsweise nach dem Wort "Linux" suchen möchten, reicht es aus, dieses Wort in das von uns verwendete Programm aufzunehmen. Das Wort selbst ist ein regulärer Ausdruck. Bisher scheint es sehr einfach zu sein, aber was ist, wenn wir alle Zahlen in einer bestimmten Datei finden wollen? Oder alle Zeilen, die mit einem Großbuchstaben beginnen? In diesen Fällen können Sie kein einfaches Wort mehr sagen. Die Lösung besteht darin, einen regulären Ausdruck zu verwenden.

Reguläre Ausdrücke vs. Dateimuster.

Bevor wir uns mit regulären Ausdrücken befassen, möchte ich ein häufiges Missverständnis über reguläre Ausdrücke beseitigen. Ein regulärer Ausdruck ist nicht das, was wir als Parameter in Befehlen wie rm, cp usw. einfügen, um auf verschiedene Dateien auf der Festplatte zu verweisen. Das wäre ein Dateimuster. Reguläre Ausdrücke sind unterschiedlich, obwohl sie einige gemeinsame Zeichen verwenden. Ein Dateimuster wird für die Dateien auf der Festplatte ausgelöst und gibt diejenigen zurück, die vollständig mit dem Muster übereinstimmen, während ein regulärer Ausdruck für einen Text ausgelöst wird und die Zeilen zurückgibt, die den gesuchten Text enthalten. Zum Beispiel der reguläre Ausdruck, der dem Muster entspricht *.* es wäre so etwas wie ^.*\..*$

Arten von regulären Ausdrücken.

Nicht alle Programme verwenden dieselben regulären Ausdrücke. Nicht viel weniger. Es gibt mehrere mehr oder weniger Standardtypen regulärer Ausdrücke, aber es gibt Programme, die die Syntax geringfügig ändern, ihre eigenen Erweiterungen enthalten oder sogar völlig andere Zeichen verwenden. Wenn Sie reguläre Ausdrücke mit einem Programm verwenden möchten, das Sie nicht gut kennen, müssen Sie zunächst im Handbuch oder in der Dokumentation des Programms nachsehen, wie die erkannten regulären Ausdrücke aussehen.

Zunächst gibt es zwei Haupttypen regulärer Ausdrücke, die vom POSIX-Standard abgedeckt werden, den Linux-Tools verwenden. Sie sind die grundlegenden und erweiterten regulären Ausdrücke. Bei vielen Befehlen, die mit regulären Ausdrücken wie grep oder sed arbeiten, können Sie diese beiden Typen verwenden. Ich werde unten darüber sprechen. Es gibt auch reguläre Ausdrücke im PERL-Stil, und dann gibt es Programme wie vim oder emacs, die Varianten davon verwenden. Je nachdem, was wir tun möchten, ist es möglicherweise besser, das eine oder andere zu verwenden.

Reguläre Ausdrücke testen.

Die Syntax regulärer Ausdrücke ist nicht trivial. Wenn wir einen komplizierten regulären Ausdruck schreiben müssen, stehen wir vor einer Reihe von Sonderzeichen, die auf den ersten Blick nicht zu verstehen sind. Um zu lernen, wie man sie verwendet, ist es wichtig, eine Möglichkeit zu haben, alle gewünschten Tests durchzuführen und die Ergebnisse leicht zu sehen. Aus diesem Grund werde ich jetzt mehrere Befehle eingeben, mit denen wir die Tests durchführen und alles experimentieren können, was wir brauchen, bis die regulären Ausdrücke dominiert sind.

Der erste ist der Befehl grep. Dies ist der Befehl, den wir am häufigsten für Suchvorgänge verwenden. Die Syntax lautet wie folgt:

grep [-E] 'REGEX' FICHERO
COMANDO | grep [-E] 'REGEX'

Ich empfehle, reguläre Ausdrücke immer in einfache Anführungszeichen zu setzen, damit die Shell nicht dazu kommt. Die erste Möglichkeit besteht darin, einen regulären Ausdruck in einer Datei zu finden. Die zweite ermöglicht das Filtern der Ausgabe eines Befehls durch einen regulären Ausdruck. Standardmäßig verwendet grep grundlegende reguläre Ausdrücke. Die Option -E dient zur Verwendung erweiterter regulärer Ausdrücke.

Ein Trick, mit dem wir sehen können, wie reguläre Ausdrücke funktionieren, besteht darin, die Verwendung von Farbe im Befehl grep zu aktivieren. Auf diese Weise wird der Teil des Textes hervorgehoben, der dem von uns verwendeten regulären Ausdruck entspricht. Um die Farbe im Befehl grep zu aktivieren, stellen Sie einfach sicher, dass die Umgebungsvariable GREP_OPTIONS im Wert enthalten --color, was mit diesem Befehl gemacht werden kann:

GREP_OPTIONS=--color

Wir können es in die .bashrc-Datei einfügen, damit es immer aktiviert ist.

Eine andere Möglichkeit, reguläre Ausdrücke zu verwenden, ist die Verwendung des Befehls sed. Dies ist besser zum Ersetzen von Text geeignet, kann aber auch zum Suchen verwendet werden. Die Syntax dafür wäre wie folgt:

sed -n[r] '/REGEX/p' FICHERO
COMANDO | sed -n[r] '/REGEX/p'

Der Befehl sed verwendet standardmäßig auch grundlegende reguläre Ausdrücke. Mit der Option -r können Sie erweiterte reguläre Ausdrücke verwenden.

Ein weiterer Befehl, den ich auch benennen möchte, ist awk. Dieser Befehl kann für viele Zwecke verwendet werden, da Sie damit Skripte in Ihrer eigenen Programmiersprache schreiben können. Wenn wir einen regulären Ausdruck in einer Datei oder in der Ausgabe eines Befehls finden möchten, können Sie ihn folgendermaßen verwenden:

awk '/REGEX/' FICHERO
COMANDO | awk '/REGEX/'

Dieser Befehl verwendet immer erweiterte reguläre Ausdrücke.

Für unsere Tests benötigen wir außerdem einen Text, der als Beispiel für die Suche dient. Wir können den folgenden Text verwenden:

- Lista de páginas wiki:

ArchLinux: https://wiki.archlinux.org/
Gentoo: https://wiki.gentoo.org/wiki/Main_Page
CentOS: http://wiki.centos.org/
Debian: https://wiki.debian.org/
Ubuntu: https://wiki.ubuntu.com/

- Fechas de lanzamiento:

Arch Linux: 11-03-2002
Gentoo: 31/03/2002
CentOs: 14-05-2004 03:32:38
Debian: 16/08/1993
Ubuntu: 20/10/2004

Desde Linux Rulez.

Dies ist der Text, den ich für die Beispiele des restlichen Beitrags verwenden werde. Ich empfehle daher, ihn in eine Datei zu kopieren, damit er vom Terminal aus griffbereit ist. Sie können den gewünschten Namen eingeben. Ich habe es Regex genannt.

Beginn der Lektion.

Jetzt haben wir alles, was wir brauchen, um reguläre Ausdrücke zu testen. Lass uns nach und nach gehen. Ich werde einige Beispiele für Suchvorgänge mit regulären Ausdrücken einfügen, in denen ich erkläre, wofür jedes Zeichen ist. Sie sind keine sehr guten Beispiele, aber da ich einen sehr langen Beitrag haben werde, möchte ich ihn nicht mehr komplizieren. Und ich werde nur die Oberfläche dessen kratzen, was mit regulären Ausdrücken gemacht werden kann.

Am einfachsten ist es, nach einem bestimmten Wort zu suchen. Nehmen wir beispielsweise an, wir möchten nach allen Zeilen suchen, die das Wort "Linux" enthalten. Dies ist am einfachsten, da wir nur schreiben müssen:

grep 'Linux' regex

Und wir können das Ergebnis sehen:

BogenLinux: https://wiki.archlinux.org/ Arch Linux: 11-03-2002 Von Linux Regelz.

Dies sind die drei Zeilen, die das Wort "Linux" enthalten, das, wenn wir den Farbtrick verwendet haben, hervorgehoben erscheint. Beachten Sie, dass es das gesuchte Wort erkennt, auch wenn es Teil eines längeren Wortes wie in "ArchLinux" ist. Das Wort "Linux" in der URL "https://wiki.archlinux.org/" wird jedoch nicht hervorgehoben. Das liegt daran, dass es dort mit dem Kleinbuchstaben "l" angezeigt wird und wir es in Großbuchstaben gesucht haben. Der Befehl grep hat Optionen dafür, aber ich werde in einem Artikel, der sich mit regulären Ausdrücken befasst, nicht darauf eingehen.

Mit diesem einfachen Test können wir die erste Schlussfolgerung ziehen:

  • Ein normales Zeichen, das in einen regulären Ausdruck eingefügt wird, stimmt mit sich selbst überein.

Das heißt, wenn Sie den Buchstaben "a" eingeben, wird nach dem Buchstaben "a" gesucht. Es scheint logisch, oder? 🙂

Angenommen, wir möchten nach dem Wort "CentO" suchen, gefolgt von einem beliebigen Zeichen, aber nur einem einzelnen Zeichen. Hierfür können wir das Zeichen "." Verwenden, ein Platzhalter, der mit jedem Zeichen übereinstimmt, aber nur mit einem:

grep 'CentO.' regex

Und das Ergebnis ist:

CentOS: http://wiki.centos.org/
CentOs: 14-05-2004 03:32:38

Dies bedeutet, dass es das "S" in "CentOS" enthält, obwohl es in einem Fall in Großbuchstaben und in einem anderen in Kleinbuchstaben geschrieben ist. Wenn irgendein anderes Zeichen an dieser Stelle auftauchen würde, würde es es auch einschließen. Wir haben bereits die zweite Regel:

  • Der Charakter "." passt zu einem beliebigen Zeichen.

Es ist nicht mehr so ​​trivial, wie es schien, aber damit können wir nicht viel tun. Gehen wir noch etwas weiter. Nehmen wir an, wir möchten die Zeilen finden, in denen die Jahre 2002 und 2004 erscheinen. Sie scheinen wie zwei Suchen zu sein, aber sie können auf einmal so durchgeführt werden:

grep '200[24]' regex

Was bedeutet, dass wir die Zahl 200 gefolgt von 2 oder 4 finden wollen. Und das Ergebnis ist folgendes:

Arch-Linux: 11-03-2002
Gentoo: 31. /2002
CentOS: 14-05-2004 03:32:38
Ubuntu: 20/10/2004

Was uns zur dritten Regel bringt:

  • Mehrere in Klammern eingeschlossene Zeichen stimmen mit den Zeichen in Klammern überein.

Die Klammern geben mehr Spiel. Sie können auch zum Ausschließen von Zeichen verwendet werden. Angenommen, wir möchten nach Websites suchen, auf denen das Zeichen ":" angezeigt wird, auf die jedoch nicht "/" folgt. Der Befehl würde so lauten:

grep ':[^/]' regex

Es geht einfach darum, ein "^" als erstes Zeichen in die Klammer zu setzen. Sie können alle gewünschten Zeichen unten einfügen. Das Ergebnis dieses letzten Befehls ist das Folgende:

ArchLinux: https://wiki.archlinux.org/
Gentoo: https://wiki.gentoo.org/wiki/Main_Page
CentOS: http://wiki.centos.org/
Debian: https://wiki.debian.org/
Ubuntu: https://wiki.ubuntu.com/
Arch Linux: 11-03-2002 Gentoo: 31 CentOs: 14-05-2004 03:32:38 Debian: 16 Ubuntu: 20/10/2004

Jetzt werden die ":" hinter den Distributionsnamen hervorgehoben, aber nicht die in den URLs, da die URLs "/" hinter sich haben.

  • Wenn Sie das Zeichen "^" an den Anfang einer Klammer setzen, entspricht dies jedem Zeichen außer den anderen Zeichen in der Klammer.

Wir können auch eine Reihe von Zeichen angeben. Wenn Sie beispielsweise nach einer beliebigen Zahl suchen, gefolgt von einem "-", sieht dies folgendermaßen aus:

grep '[0-9]-' regex

Damit geben wir ein Zeichen zwischen 0 und 9 und dann ein Minuszeichen an. Mal sehen, das Ergebnis:

Arch-Linux: 11-03-2002 CentOs: 14-05-2004 03: 32: 38

In den Klammern können mehrere Bereiche angegeben werden, um Bereiche mit einzelnen Zeichen zu mischen.

  • Das Platzieren von zwei durch "-" getrennten Zeichen in den Klammern entspricht jedem Zeichen innerhalb des Bereichs.

Mal sehen, ob wir den ersten Teil der URLs auswählen können. Derjenige, der "http" oder "https" sagt. Sie unterscheiden sich nur in den letzten "s", also machen wir es wie folgt:

grep -E 'https?' regex

Das Fragezeichen wird verwendet, um das Zeichen links davon optional zu machen. Jetzt haben wir dem Befehl die Option -E hinzugefügt. Dies liegt daran, dass die Abfrage ein Merkmal erweiterter regulärer Ausdrücke ist. Bis jetzt verwendeten wir grundlegende reguläre Ausdrücke, sodass wir nichts eingeben mussten. Mal sehen, das Ergebnis:

ArchLinux: https: //wiki.archlinux.org/ Gentoo: https: //wiki.gentoo.org/wiki/Main_Page CentOS: http: //wiki.centos.org/ Debian: https: //wiki.debian.org/ Ubuntu: https: //wiki.ubuntu.com/

Wir haben also bereits eine neue Regel:

  • Ein Zeichen gefolgt von "?" entspricht diesem oder keinem Charakter. Dies gilt nur für erweiterte reguläre Ausdrücke.

Jetzt werden wir zwei völlig verschiedene Wörter finden. Mal sehen, wie man die Zeilen findet, die sowohl das Wort "Debian" als auch "Ubuntu" enthalten.

grep -E 'Debian|Ubuntu' regex

Mit der vertikalen Leiste können wir zwei oder mehr verschiedene reguläre Ausdrücke trennen und die Linien finden, die zu einem von ihnen passen:

Debian: https://wiki.debian.org/
Ubuntu: https://wiki.ubuntu.com/
Debian: 16 / 08 / 1993
Ubuntu: 20 / 10 / 2004
  • Das Zeichen «|» dient dazu, mehrere reguläre Ausdrücke zu trennen und mit einem von ihnen übereinzustimmen. Es ist auch spezifisch für erweiterte reguläre Ausdrücke.

Lass uns weitermachen. Jetzt werden wir nach dem Wort "Linux" suchen, aber nur dort, wo es nicht an einem anderen Wort auf der linken Seite festhält. Wir können es so machen:

grep '\

Das wichtige Zeichen hier ist "<", aber es muss durch Setzen von "\" vorangestellt werden, damit grep es als Sonderzeichen interpretiert. Das Ergebnis ist wie folgt:

Bogen Linux: 11-03-2002 Von Linux Regelz.

Sie können auch "\>" verwenden, um nach Wörtern zu suchen, die nicht direkt nebeneinander liegen. Lassen Sie uns mit einem Beispiel gehen. Versuchen wir diesen Befehl:

grep 'http\>' regex

Die Ausgabe, die es erzeugt, ist folgende:

CentOS: http: //wiki.centos.org/

"Http" kam heraus, aber nicht "https", da in "https" rechts neben dem "p" noch ein Zeichen steht, das Teil eines Wortes sein kann.

  • Die Zeichen "<" und ">" stimmen mit dem Anfang bzw. Ende eines Wortes überein. Diese Zeichen müssen maskiert werden, damit sie nicht als wörtliche Zeichen interpretiert werden.

Wir gehen mit etwas komplizierteren Dingen um. Das "+" - Zeichen entspricht dem Zeichen auf der linken Seite und wird mindestens einmal wiederholt. Dieses Zeichen ist nur mit erweiterten regulären Ausdrücken verfügbar. Damit können wir beispielsweise Sequenzen mehrerer Zahlen in einer Reihe suchen, die mit ":" beginnen.

grep -E ':[0-9]+' regex

Ergebnis:

CentOs: 14 05: 32: 38

Die Nummer 38 wird ebenfalls hervorgehoben, da sie ebenfalls mit ":" beginnt.

  • Das "+" - Zeichen entspricht dem Zeichen auf der linken Seite und wird mindestens einmal wiederholt.

Sie können die Anzahl der Wiederholungen auch mit "{" und "}" steuern. Die Idee ist, eine Zahl in geschweiften Klammern zu setzen, die die genaue Anzahl der gewünschten Wiederholungen angibt. Sie können auch einen Bereich festlegen. Sehen wir uns Beispiele für die beiden Fälle an.

Zuerst werden wir alle vierstelligen Sequenzen finden, die es gibt:

grep '[0-9]\{4\}' regex

Beachten Sie, dass die geschweiften Klammern maskiert werden müssen, wenn wir grundlegende reguläre Ausdrücke verwenden, nicht jedoch, wenn wir erweiterte verwenden. Mit erweitert wäre es so:

grep -E '[0-9]{4}' regex

In beiden Fällen wäre das Ergebnis:

Arch-Linux: 11-03-2002
Gentoo: 31. /2002
CentOS: 14-05-2004 03:32:38
Debian: 16/08/1993
Ubuntu: 20. /2004
  • Die Zeichen "{" und "}" mit einer Zahl dazwischen stimmen mit dem vorherigen Zeichen überein, das die angegebene Anzahl von Malen wiederholt wurde.

Nun das andere Beispiel mit den Klammern. Angenommen, wir möchten Wörter mit 3 bis 6 Kleinbuchstaben finden. Wir könnten Folgendes tun:

grep '[a-z]\{3,6\}' regex

Und das Ergebnis wäre:

- Lista de Seites Wiki: TOrchLinux: https:/ /Wiki.Archlinux.org/ G.dann: https:/ /Wiki.Gentoo.org/Wiki/Main_P Alter
CentOS: http:/ /Wiki.CentOS.org/ D.Ebian: https:/ /Wiki.Debian.org/ ODERRebellion: https:/ /Wiki.ubuntu.com/ - F.dir fehlt de Einführung: TOrch Linux: 11-03-2002 G.dann: 31 C.entOs: 14-05-2004 03:32:38
DEbian: 16 U.Rebellion: 20 D.esde Linux RUlez.

Was, wie Sie sehen, nicht so aussieht, wie wir es wollten. Das liegt daran, dass der reguläre Ausdruck die Buchstaben in anderen Wörtern findet, die länger sind. Versuchen wir diese andere Version:

grep '\<[a-z]\{3,6\}\>' regex

Ergebnis:

- Liste der Seiten Wiki: ArchLinux: https:/ /Wiki.archlinux.org/ Gentoo: https:/ /Wiki.Gentoo.org/Wiki/ Main_Page CentOS: http:/ /Wiki.CentOS.org/ Debian: https:/ /Wiki.Debian.org/ Ubuntu: https:/ /Wiki.ubuntu.com/

Das sieht schon eher so aus, wie wir es wollten. Was wir getan haben, ist, dass das Wort kurz vor dem ersten Buchstaben beginnt und kurz nach dem letzten endet.

  • Die Zeichen "{" und "}" mit zwei durch Komma getrennten Zahlen stimmen mit dem vorherigen Zeichen überein, das die durch die beiden Zahlen angegebene Anzahl von Malen wiederholt.

Schauen wir uns nun ein Zeichen an, das eine Primzahl von "+" ist. Es ist "*" und seine Funktionsweise ist nur sehr ähnlich, nur dass es mit einer beliebigen Anzahl von Zeichen einschließlich Null übereinstimmt. Das heißt, es macht dasselbe wie das "+", erfordert jedoch nicht, dass das Zeichen links davon im Text erscheint. Versuchen wir beispielsweise, nach den Adressen zu suchen, die im Wiki beginnen und in org enden:

grep 'wiki.*org' regex

Mal sehen, das Ergebnis:

ArchLinux: https: //wiki.archlinux.org/ Gentoo: https: //wiki.gentoo.org/ wiki / Main_Page CentOS: http: //wiki.centos.org/ Debian: https: //wiki.debian.org/

Perfect.

Nun das letzte Zeichen, das wir sehen werden. Das Zeichen "\" wird verwendet, um das Zeichen rechts davon zu maskieren, sodass es seine besondere Bedeutung verliert. Zum Beispiel: Angenommen, wir möchten die Linien lokalisieren, die in einem Punkt enden. Das erste, was uns einfallen könnte, könnte Folgendes sein:

grep '.$' regex

Das Ergebnis ist nicht das, wonach wir suchen:

- Liste der Wiki-Seiten:
ArchLinux: https://wiki.archlinux.org/
Gentoo: https://wiki.gentoo.org/wiki/Main_Page
CentOS: http://wiki.centos.org/
Debian: https://wiki.debian.org/
Ubuntu: https://wiki.ubuntu.com/
- Veröffentlichungsdaten: Arch Linux: 11-03-2002
Gentoo: 312
CentOs: 14-05-2004 03:32:38
Debian: 163
Ubuntu: 204
Desde Linux Regelz.

Dies liegt daran, dass das "." stimmt mit allem überein, sodass der reguläre Ausdruck mit dem letzten Zeichen jeder Zeile übereinstimmt, unabhängig davon, um was es sich handelt. Die Lösung lautet:

grep '\.$' regex

Jetzt wollen wir das Ergebnis:

Desde Linux Regelz.

Game Over

Obwohl das Thema der regulären Ausdrücke so komplex ist, dass ich es für eine Reihe von Artikeln geben würde, denke ich, dass ich Ihnen bereits genug Schmerzen bereitet habe. Wenn Sie angekommen sind, herzlichen Glückwunsch. Und wenn Sie das alles in einer Sitzung gelesen haben, nehmen Sie ein Aspirin oder so, weil es nicht gut sein kann.

Im Moment ist das alles. Wenn Ihnen dieser Artikel gefällt, können Sie vielleicht einen anderen schreiben. In der Zwischenzeit empfehle ich Ihnen, alle regulären Ausdrücke im Terminal auszuprobieren, um klar zu sehen, wie sie funktionieren. Und denken Sie daran: Nur Chuck Norris kann HTML mit regulären Ausdrücken analysieren.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.

  1.   Ezekiel sagte

    Was wäre unser Leben ohne den regulären Ausdruck?
    Der Artikel ist sehr nützlich, aber ich werde ihn nach und nach lesen. Vielen Dank.

    1.    Hexborg sagte

      Danke für deinen Kommentar. Ich glaube immer noch nicht, dass mein Artikel herausgekommen ist. 🙂 Es ist ein Fehler aufgetreten, aber ich hoffe, es ist nützlich. 🙂

  2.   Skalibur sagte

    Vielen Dank youssssssss! ..

    Vor einiger Zeit musste ich ein wenig über reguläre Ausdrücke lernen. Ich danke Ihnen für das Unterrichten und die Schritt-für-Schritt-Anleitung, um jeden einzelnen von ihnen zu lernen.

    Sehr gut! .. .. Ich werde das Aspirin bekommen .. ee

    1.    Hexborg sagte

      Bitte. Mut und reguläre Ausdrücke können nicht mit dir. 🙂

  3.   tanrax sagte

    Fantastischer Beitrag! Gut gemacht. Ich frage mich, wie viele Stunden du gebraucht hast 😀

    1.    Hexborg sagte

      LOL !! Die Frage ist: Wie viele Stunden hätte ich gebraucht, wenn ich alles gesagt hätte, was ich sagen wollte? Unendlich !! 🙂

  4.   Tammuz sagte

    eine Sache wusste ich nicht, guter Artikel!

    1.    Hexborg sagte

      Vielen Dank. Es ist mir eine Freude, es mit Ihnen zu teilen.

  5.   helena_ryuu sagte

    tolle Erklärung. Herzlichen Glückwunsch! wirklich nützlich!

    1.    Hexborg sagte

      Ich bin froh, dass Sie es nützlich fanden. Es ist also eine Freude zu schreiben.

  6.   Anti sagte

    Dies sollte an einen besonderen Ort gehen. Wie das Featured, haben aber eine ganz bestimmte Nützlichkeit. Sehr nützlich, obwohl ich mir wünschen würde, dass es auf Vim angewendet wird.

    1.    Hexborg sagte

      Das ist eine Frage, die ich mir stelle. Ich habe noch ein paar Artikel über reguläre Ausdrücke im Sinn. Und ich könnte über Vim in ihnen sprechen. Es hat einige Unterschiede zu dem, was ich in diesem Artikel erklärt habe. Es geht darum, weiterzumachen. 🙂

  7.   Fernando sagte

    Gut Aus!

    Ihr Artikel ist sehr gut, er ist merkwürdig. Kürzlich (im Moment) habe ich auf meiner Website einen Eintrag veröffentlicht, den ich seit einigen Tagen vorbereitet habe und in dem ich eine Liste von Metazeichen für reguläre Ausdrücke und einige Beispiele zusammengestellt habe. Und es war fair, teilzunehmen DesdeLinux und sehen Sie sich einen Eintrag zum gleichen Thema an!

    Wenn es ein Trost ist, ist meiner VIEL MEHR PUSSY 😀

    Sicherlich ist Regex eines der nützlichsten Dinge. Normalerweise verwende ich sie, um die Ausgabe der Befehle zu kürzen und den Teil zu behalten, der mich interessiert, und um dann beispielsweise in einem Bash-Skript damit zu interagieren. Ich habe sie auch häufig an der Universität verwendet und sie sind von entscheidender Bedeutung für die Erstellung von Compilern (bei der Definition von Lexikografie und Parser). Kurz gesagt, eine ganze Welt.

    Grüße und sehr sehr gute Arbeit.

    1.    Hexborg sagte

      Vielen Dank.

      Ihr Artikel hat mir auch gefallen. Es ist prägnanter als meins. Es kann als Kurzreferenz dienen. Es ist ein Zufall, dass wir sie gleichzeitig geschrieben haben. Sie können sehen, dass sich die Leute für das Thema interessieren. 🙂

  8.   Ellery sagte

    Reguläre Ausdrücke für Dummies =), jetzt ist mir klarer, dass eine Möglichkeit, die Ausgabe mit Farbe für grep zu haben, darin besteht, einen Alias ​​in .bashrc zu erstellen. Alias ​​grep = 'grep –color = always', falls es für jemanden funktioniert .

    Grüße

    1.    Hexborg sagte

      Wahr. Das ist ein anderer Weg, es zu tun. Danke für die Eingabe. 🙂

  9.   KZKG ^ Gaara sagte

    O_O… Beitrag !!! O_O ...
    Vielen Dank für den Beitrag, ich habe eine Weile auf so etwas gewartet lol, ich lasse es offen, um es ruhig zu Hause zu lesen, ohne Probleme, lol zu konzentrieren.

    Danke für den Artikel, das tue ich wirklich 😀

    1.    Hexborg sagte

      Ich wusste, dass es dir gefallen würde. LOL !! Die Wahrheit ist, dass viele Dinge fehlen, aber ich habe bereits einen zweiten Teil im Sinn. 🙂

  10.   Eliecer Tates sagte

    Toller Artikel, wenn ich ihn nur gestern gelesen hätte, wäre der Unterricht, den ich heute gegeben habe, für meine Schüler noch einfacher gewesen!

    1.    Hexborg sagte

      LOL !! Schade, dass ich zu spät kam, aber froh, dass es nützlich ist. 🙂

  11.   LeoToro sagte

    Endlich !!!, super gut die Post ... Ich habe endlich etwas gefunden, das die regulären Ausdrücke klar erklärt ...

    1.    Hexborg sagte

      Es gibt viele Informationen, aber es ist schwieriger, etwas zu finden, das leicht zu verstehen ist. Ich bin froh, dass ich diese Lücke gefüllt habe. 🙂

      Grüße.

  12.   Shakespeare Rhodes sagte

    Hey, ich brauche Hilfe, ich muss eine Suche in / var / logs mit dem Format durchführen: yymmdd, und die Protokolle lauten 130901.log -130901.log. Ich muss nach allen suchen, die zwischen dem 1. September und dem 11. Oktober liegen. Das einzige, was ich geschafft habe, war den ganzen September zu entfernen, aber ich weiß nicht, wie ich die komplette Kette machen soll:

    Beispiel: 1309 [0-3] gibt mir die Protokolle zwischen dem 1. und 30. September zurück, aber ich weiß nicht, wie ich vom 1. bis 11. Oktober auch in dieselbe Kette komme.

    1.    Hexborg sagte

      Die Verwendung regulärer Ausdrücke ist etwas kompliziert. Mir fällt ein, dass so etwas funktionieren könnte:

      13(09[0-3]|10(0|1[01]))

      Es ist ein erweiterter regulärer Ausdruck. Sie sagen nicht, welches Tool Sie verwenden, daher kann ich Ihnen keine weiteren Details geben.

      Wie auch immer, ich denke, dies ist der Fall, anstatt reguläre Ausdrücke zu verwenden, ist es besser, dies mit find zu tun. Sie können so etwas ausprobieren:

      finden. -newermt '01 sep '-a! -newermt '11 oct '-print

      Glück. Hoffe das kann dir helfen.

  13.   Chipo sagte

    Hallo! Zunächst möchte ich mich bei Ihnen für Ihre Arbeit bedanken, da diese Seite zu meinen "Top 3" der besten Linux-Sites gehört.
    Ich übte und wusste nicht, warum ein RegExp auf einer Telefonnummer für mich nicht funktionierte und es war, dass mir das "-E" fehlte (was ich dank dieses Beitrags realisierte).
    Ich wollte Sie fragen, ob Sie kein gutes PDF oder keine gute Website kennen, auf der es Übungen zu RegExp gibt, obwohl Sie mit ein wenig Fantasie üben können, sie selbst zu erfinden.

    Grüße, Pablo.

  14.   kal sagte

    Sehr gut, ich habe gerade alles gelesen und ja, jetzt brauche ich ein Aspirin 🙂

  15.   Oscar sagte

    Die beste Erklärung, die ich für reguläre Ausdrücke gesehen habe. Mein Dank geht an den Autor für das Teilen dieser Arbeit.

    Ein Gruß.

  16.   Alexander sagte

    Mir hat eine sehr gute Erklärung sehr gut gefallen