Reguläre Ausdrücke (oft mit "Regex" abgekürzt) sind Ausdrücke, die in einer deklarativen Sprache geschrieben sind und zum Abgleichen von Mustern innerhalb von Zeichenfolgen verwendet werden.
Ich habe eine Datei mit einer Reihe von Benutzervorgaben. Ich möchte einen Teil des Texts ändern, habe aber Probleme, einen Matcher und einen Ersatz zu finden. Mit dem folgenden Beispiel: ############################################################################### # Trackpad, mouse, keyboard, Bluetooth accessories, and input # ############################################################################### # Trackpad: enable tap to click for this user …
Ich bin in vim auf viele Situationen gestoßen, in denen es nützlich wäre, Lookaround-Anweisungen zu haben. Ich habe versucht , die Standard - Lookarounds Syntax ( (?=), (?!)etc ..) , aber es scheint vim dies nicht unterstützt. Hat vim eine äquivalente Syntax für diese Art von Anweisungen?
Ich habe eine Datei mit dem Zeichen ã(Kleinbuchstaben a + kombinierende Tilde). Encodingund fileencodingsind beides utf-8. gazeigt an <a> 97, hex 61, octal 141 <~> 771, Hex 0303, Octal 1403 (aber mit der eigentlichen Kombination in der Tilde <>) und g8zeigt 61 + cc 83 Suchen mit /a\%u0303funktioniert gut. \%u0303Wenn …
Ich kämpfe mit dem Erlernen von regulären Ausdrücken (ich kenne auch keine anderen regulären Ausdrücke sehr gut), daher besteht das Hauptproblem darin, reguläre Ausdrücke zu definieren, die übereinstimmen würden some_function_call(simple_value, keyword=value) Schlüsselwort in diesem Beispiel. Es sollte also mit einem Wort übereinstimmen, wenn es sich innerhalb von Parens befindet und …
Ich versuche, einen regulären Ausdruck zum Ersetzen von Text in einer Datei zu verwenden (ersetzen Sie eine vollständige URL nur durch protocol / domain /): :%s/\(https\?:\/\/.*?\/\).*/\1/gc Leider .*?passt der String nicht, auch wenn versucht wird, dem ?Quantor zu entkommen ? Wie soll ein nicht gieriger Quantor in vim entkommen?
Aus können :h E65wir ersehen, dass Vim nicht mehr als 9 Erfassungsgruppen in einem Ersetzungsbefehl zulässt. Zum Beispiel wird der folgende Befehl funktionieren: s/\v(a)(b)(c)(d)(e)(f)(g)(h)(i)/\9\8\7\6\5\4\3\2\1 Aber diese mit einer weiteren Erfassungsgruppe wird fehlschlagen: s/\v(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)/\10\9\8\7\6\5\4\3\2\1 Meine Frage ist nicht, warum es fehlschlägt (es ist ein hartes Vim-Limit), sondern warum hat Vim dieses …
Ich habe eine Zeile wie diese: function my_function(argument, another argument, but there are spaces) Ich möchte die Leerzeichen (innerhalb der Argumentnamen) durch Unterstriche ersetzen. Ich möchte also verwenden: :s/\ /_/g aber wie kann ich wählen, dass es nicht auf die gesamte Zeile angewendet wird, sondern beispielsweise ab der Cursorposition? (Oder …
Die Syntax für reguläre Ausdrücke vieler Unix-Tools besteht häufig aus den POSIX-kodierten regulären Ausdrücken (BRE bzw. ERE) und in einigen modernen Implementierungen aus Perl (PCRE ist eine Implementierung davon). Gibt es eine Eins-zu-eins-Entsprechung zwischen Vims Magiestufen und solchen extern definierten, aber bekannten Klassen? Es sieht aus wie \mBRE und \vERE, …
In Vim entspricht die Zeichenklasse einem \sbeliebigen Leerzeichen. Wenn ich diese Sonderzeichen in Gruppen verwende [\s\w], stimmt sie beispielsweise nicht mit einem einzelnen Leerzeichen oder Wortzeichen überein, sondern mit soder w. Wie verwendet man Zeichenklassen in Gruppen?
Wenn ich einen magischen Vim-Regex in einem String-Literal habe, gibt es eine Möglichkeit, den gesamten Regex in eine alternative Darstellung zu konvertieren, die einen anderen magischen Modus verwendet, sodass ich diesen entsprechenden Regex in den Quellcode einfügen kann? Wenn ich zum Beispiel dieses Magic-Mode-Muster konvertieren möchte: '\m-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>' in den sehr …
Wir alle wissen, dass beim Suchen \nNewline und \rCarriage Return ( ^M) ist, beim Ersetzen \rNewline, während \nein Null-Byte ( ^@) ist. Woher kommt diese Asymmetrie? Angesichts der Tatsache, dass dieses Verhalten ... gelinde gesagt ... eigentümlich ist (und ziemlich kontraproduktiv ist, wenn man es das erste Mal falsch macht), …
Ich habe eine reine Textdatei mit durch Leerzeichen getrennten Wertespalten erhalten. So was: AU 3030 .... ... .... AU 3031 .... ... .... AU 3032 .... ... .... AU 3033 .... ... .... IT 48100 ... .. ..... IT 40100 ... .. ..... IT 48123 ... .. ..... UK 3333 …
Ich habe eine sich wiederholende Konfigurationsdatei und möchte einen regulären Ausdruck abgleichen und einen Zeilenbereich vor und nach einer Übereinstimmung löschen. Ich möchte auch die Übereinstimmung in einem Befehl löschen. Ich kann nutzen... :g/match/-1d ... mehrmals, um mehr als eine Zeile vor einem Spiel zu löschen ... ... und kombinieren …
Ich habe eine Liste von Dateien: ./a.temp.txt ./a.temp.txt ./a/b.temp.txt ./a/b.temp.txt ./a/b/c.temp.txt ./a/b/c.temp.txt Und ich möchte das temp.in jeder Zeile entfernen , aber nur das zweite Vorkommen , daher sollte die Datei so aussehen: ./a.temp.txt ./a.txt ./a/b.temp.txt ./a/b.txt ./a/b/c.temp.txt ./a/b/c.txt Wie soll ich das machen?
Folgendes erhalte ich aus der Dokumentation: \zs"Startet den hervorgehobenen Teil" nach dem Abgleichen des vorhergehenden regulären Ausdrucks und \@<="Startet den hervorgehobenen Teil" nach dem Abgleichen des vorhergehenden Atoms . Aber ich verstehe die Feinheiten nicht genau. Kann jemand erklären, wie sie sich etwas tiefer unterscheiden? Das hat mich neugierig gemacht: …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.