Das Suchen und Ersetzen mit regulären Ausdrücken ist für den Emacs-Benutzer ein leistungsstarkes Werkzeug, mit dem er diese Aktionen routinemäßig ausführen kann. Als Emacs-Anfänger (und / oder Programmieranfänger) müssen reguläre Ausdrücke erlernt und geübt werden.
Kann ich reguläre Ausdrücke in Emacs interaktiv lernen und trainieren , ähnlich wie im integrierten Emacs-Lernprogramm? Wenn nicht, was sind andere Vorschläge, um mit Emacs die Verwendung regulärer Ausdrücke zum Suchen und Ersetzen zu üben?
regular-expressions
learning
Felix Z. Hoffmann
quelle
quelle
Antworten:
Außerdem
regexp-builder
Sie auch interessieren könnten visual-regexp Sie mit visuellem Feedback auf das ersetzen im Gange zu schaffen:quelle
anzu
, was dasselbe und noch mehr bewirkt.Sie können versuchen
M-x regexp-builder RET
, einen interaktiven Matcher für reguläre Ausdrücke zu finden, das ist nicht schlechtquelle
C-g
nicht wie erwartet Schluss ist.C-c C-q
Dies ist die Standardtastenkombination, um den Regexp-Generator zu beenden, wenn Sie mit dem Üben fertig sind.Ich benutze
regexp-builder
das, mit dem Sie Regexps interaktiv testen und Feedback erhalten. Und nachdem ich damit angefangen hatte, fragte ich mich natürlich sofort: "Wie füttere ich diesen regulären Ausdruckquery-replace-regexp
?"Die Antwort, die ich gewählt habe, ist die folgende Funktion, die auf der EmacsWiki ReBuilder- Seite definiert ist.
Mein Workflow ist also:
M-x re-builder
M-x reb-query-replace
quelle
Es kann eine enorme Hilfe sein, wenn Sie lernen, wie man reguläre Ausdrücke verwendet, um festzustellen, welche Teile eines regulären Ausdrucks mit welchen übereinstimmen - insbesondere reguläre Ausdrücke in Gruppen. Und das interaktiv und inkrementell.
Nach dem Vorbild der @ immerr Antwort, Icicles Suche hat ähnlich hat Hervorhebung für eine lange Zeit.
quelle
Sie können auch helm-regexp verwenden , um Regexgruppen separat anzuzeigen .
quelle
Nicht innerhalb von Emacs, aber http://rubular.com/ ist im Grunde
regexp-builder
mit einem Spickzettel. Sie können ein Beispiel einrichten und einen Link zu diesem Beispiel ausspucken lassen . Ich benutze dies, wenn ich mit einem Team über Regex diskutiere.quelle
Alternativ zu Dave F
regexp-builder
können Sie auch beliebigen Text erstellen, um den Mustervergleich zu üben.Das nützlichste Merkmal dieses Befehls ist, dass es Übereinstimmungen im Puffer hervorhebt, wenn das Muster erstellt wird, um Sie bei der Sicherstellung der richtigen Musterübereinstimmungen zu unterstützen.
Wenn Sie
(query-replace-regexp)
( C-M-%) verwenden und einen regulären Ausdruck erstellen, um die gewünschte Ersetzung durchzuführen, können Sie üben.quelle
regexp-builder
noch nicht gibt? Das Problem dabeiquery-replace-regexp
ist, dass Sie einen gesamten regulären Ausdruck schreiben und dann darauf festlegen müssen, um herauszufinden, was damit übereinstimmt. Wenn Ihnen das Ergebnis nicht gefällt, müssen Sie von vorne beginnen.regexp-builder
Zeigt Übereinstimmungen im laufenden Betrieb an, wodurch es einfacher wird, Ihre reguläre Ausdrucksweise zu optimieren, bis sie funktioniert, wenn Sie nicht wissen, was Sie tun.query-replace-regexp
werden Sie sich daran gewöhnen, sie speziell in Emacs zu verwenden