Als «regular-expression» getaggte Fragen

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.

1
Sortieren Sie nach durch Kommas getrennten Wörtern
Normaler Befehl: Sortieren kann Zeilen nach Spalte oder virtueller Spalte ( \%coder \%v) sortieren. Kann die übergeordnete logische Spalte als Sortierschlüssel verwendet werden? Die Verwendung von regulären Ausdrücken sieht für dieses Szenario etwas komplex aus (die Spalte befindet sich am Ende der Zeile?) Und sieht ähnlich aus wie das Sortierdienstprogramm …




3
Alternative, um Schrägstriche bei der Suche zu vermeiden und lange Zeichenfolgen zu ersetzen
Gibt es eine Alternative beim Suchen und Ersetzen von Zeichenfolgen durch vim, als jedes Sonderzeichen in Zeichenfolgen zu umgehen? Zum Beispiel, wenn ich die folgende Zeichenfolge abgleichen und durch etwas ersetzen möchte [ERROR] Login unsucessful Dann muss ich tun :%s/\[ERROR\]\ Login\ unsucessful/something/g Und es wird viel hässlicher und schmerzhafter für …




5
Wie ersetze ich Inhalte zwischen zwei Mustern aus der Datei?
Ich habe das folgende Format der Datei: <common> fitnes=0 genetic=1 method=0 </common> <inputs> foo=bar bar=foo </inputs> <limits> balance=200.00 </limits> und ich möchte alles löschen, was zwischen <inputs>und liegt </inputs>(ausgenommen Muster selbst) und es durch den Inhalt einer anderen Datei ersetzen (z foo.txt. B. ). Mit anderen Worten, Zeilen mit foo=barund …


1
Regex, der kürzere Spiele innerhalb eines Spiels bevorzugt? (Dies ist mehr beteiligt als nicht gierig)
Ich versuche, ein Skript für die Fuzzy-Suche in einem Puffer zu erstellen. Die Hauptidee ist eine Eingabe zu nehmen, und fügen Sie .\{-}zwischen jedem Paar von Zeichen, zB foowird f.\{-}o.\{-}o. Dies funktioniert ziemlich gut, führt jedoch zu vielen nicht idealen Übereinstimmungen. Ich denke, eine Fuzzy-Suche sollte zuerst die kürzesten Übereinstimmungen …

1
Verwendung des Operators = ~
Ich bin ein wenig verwirrt über die Regex-Vergleichsoperatoren von VimScript. Wenn ich mir :h =~?mein Verständnis anschaue , =~kann dies verwendet werden, um ein Regex-Match durchzuführen (wobei die ?Groß- und Kleinschreibung nicht berücksichtigt wird). Aber dieser Code gibt "nein" aus: let s:myVar = "S123" if s:myVar =~? "^S\d+" echo "yes" …



2
Verschachtelte übereinstimmende Gruppe in Regex
Ich habe einen häufigen Anwendungsfall, wenn ich einen Python-Ausdruck folgendermaßen transformiere: value 1 value 2 value 3 in ['value 1', 'value 2', 'value 3'] Der einfachste Weg ist vielleicht, ein Mapping zu verwenden, aber ich wollte eine Ersetzung für diese Aufgabe verwenden. Bisher habe ich: s/\(.*\n\)\+/[&]/g Welches Ergebnis in [value …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.