ich einige Strings ändern wollen:Regex zu wählen und so zu ersetzen, Muster zu halten
space+cows --> space + cows
stupid+rabbit --> stupid + rabbit
(put spaces around the `+`)
In Sublime Text 2 habe ich versucht, diese zu verwenden:
Find: \w+\+\w+
Replace: \w+ \+ \w+
Die Suche nach regex abgestimmt alles gut, aber offensichtlich wurden meine Saiten durch buchstäblich
w+ + w+
ersetzt.
Ein weiteres Beispiel:
Strings:
bool *foo --> bool* foo
int *bar --> int* bar
Pattern:
Find: (bool|int) *(foo|bar)
Replace: (bool|int)* (foo|bar)
Result:
(bool|int)* (foo|bar)
(bool|int)* (foo|bar)
Unnötig zu sagen, dass ich die tatsächlichen bool
, int
, foo
und bar
wie sie waren, bevor halten wollte.
Ich kann auch nicht nur \*
verwenden, um die Strings anzupassen, weil es andere Sachen auswählt, die ich nicht ersetzen möchte; Ich brauche einen Kontext um die tatsächliche \*
, um die richtigen Zeichenfolgen auszuwählen. Auf die gleiche Weise kann ich keine Muster wie \*[^ ]
verwenden, weil die nicht-Leerzeichen Zeichen nach dem Stern nach dem Ersatz vernichtet werden würde.
Ich reparierte mein Problem von Sublime Text der mehrzeilige Ausgabe verwenden, aber ich bin immer noch fragen: ist es möglich, eine regex so zu verwenden, die Sie von Strings mit „Gruppe von Zeichen“ ohne Abwischen den eigentlichen Inhalt ersetzen die "Gruppe von Charakteren"?
Sie können grundlegende Regex Probleme hier üben: https://regexone.com/lesson/introduction_abcs – MYGz
Das ist großartig, ich werde es mir ansehen. Vielen Dank! – qreon