Konvertieren Sie ein Zeichen mit regulären Ausdrücken in Großbuchstaben (EditPad Pro).


159

Ich schrieb einen regulären Ausdruck in der Hoffnung, dass ich jedes Match (das ist nur ein Zeichen) durch Großbuchstaben ersetzen kann. Ich verwende EditPad Pro (ich bin jedoch bereit, jedes andere Tool zu verwenden, mit dem ich dies tun kann, solange es kostenlos ist, da ich dies nur einmal tun muss).

Hintergrund: Ich habe eine sehr lange Textdatei, die von einer Groß- und Kleinschreibung verwendet wird, und einige Wörter beginnen mit Kleinbuchstaben anstelle von Großbuchstaben, wodurch die Anwendung abstürzt. Dies würde von Hand sehr lange dauern, und es wäre ziemlich kompliziert, auf reguläre Ausdrücke zu verzichten, da das Auftreten des (bösen) Kleinbuchstaben sehr spezifisch ist.

Ich habe den regulären Ausdruck select geschrieben und kann ihn jetzt mit einer Rückreferenz verwenden ($ 1 funktioniert einwandfrei), kann ihn jedoch nicht durch Großbuchstaben ersetzen. Ich dachte, so etwas wie \ u $ 1 würde funktionieren, aber in EditPad Pro nicht.

Wenn mir dies kein kostenloses Tool erlaubt, besteht die Alternative wahrscheinlich darin, es einfach in C # zu tun. Ich habe es jedoch etwas eilig und nicht in der Nähe eines Compilers. Daher müsste ich zuerst die Express-Edition herunterladen ... Es wäre vorzuziehen, ein Tool zu finden, das eine solche Funktion unterstützt!

Danke dir!


3
Ist diese Frage besser für Superuser geeignet?
Georgiecasey

Antworten:


272

Mit TextPad können Sie diesen Vorgang ausführen.

Beispiel:

test this sentence

Finden Sie was: \([^ ]*\) \(.*\) Ersetzen durch:\U\1\E \2

die \Ubewirkt , dass alle folgenden Zeichen oberen sein

das \Ewird das ausschalten\U

Das Ergebnis wird sein:

TEST this sentence

13
Gibt es eine Möglichkeit, diesen Vorgang in .NET Regex auszuführen (ohne ihn zu verwenden ToUpper)?
Shimmy Weitzhandler

34
Funktioniert auch in Notepad ++.
Shawn

33
\U$1\Ein erhabenem Text
Qwerty

10
\U\1\Ein Vim
J. Katzwinkel

6
Funktioniert auch in PHPStorm. Ich hatte jedoch die gegenteilige Anforderung. Ich musste alle Attributwerte in Großbuchstaben (von wahrscheinlich HTML aus den 90ern) durch Kleinbuchstaben ersetzen. Mit \L$1\Egearbeitet.
Ejaz

30

Ich weiß, dass es in diesem Thread um EditPad Pro geht, aber ich bin hierher gekommen, weil ich das gleiche Bedürfnis mit einem Javascript-Regexp hatte.

Für die Leute, die hier den gleichen Tipp benötigen, können Sie eine Funktion oder ein Lambda als Ersetzungsargument verwenden.

Ich benutze die Funktion unten, um CSS-Namen mit -in das Javascript-Äquivalent zu konvertieren , zum Beispiel "border-top"wird umgewandelt in "borderTop":

    s = s.replace(/\-[a-z]/g, x => x[1].toUpperCase());

26

EditPad Pro und PowerGREP verfügen über eine einzigartige Funktion, mit der Sie den Fall der Rückreferenz ändern können. \U1Fügt die erste Rückreferenz in Großbuchstaben, \L1in Kleinbuchstaben und \F1mit dem ersten Zeichen in Großbuchstaben und den Rest in Kleinbuchstaben ein. Schließlich \I1fügt sie mit dem ersten Buchstaben jedes Wortes groß geschrieben, und die anderen Buchstaben in Kleinbuchstaben.

Quelle: Goyvaerts, Jan (2006). Reguläre Ausdrücke: Das vollständige Tutorial . Lulu.com. p. 35 . ISBN 1411677609. Google Books. Abgerufen am 25. Juni 2010.


6

Sie können dies in jEdit tun, indem Sie die Option "Rückgabewert eines BeanShell-Snippets" im Dialogfeld "Suchen und Ersetzen" von jEdit verwenden. Suchen Sie einfach danach " [a-z]"und ersetzen Sie es durch " _0.toUpperCase()"(ohne Anführungszeichen)


1
Ihre Antwort hat nicht wirklich mit der ursprünglichen Frage zu tun, aber ich habe sie beim Googeln gefunden und war genau das, wonach ich gesucht habe. Super, danke!
Adietisheim

5

Sie können den ersten Buchstaben des Spiels auch mit \I1und \I2usw. anstelle von $1und großschreiben $2.


1

Nur ein weiteres Verwendungsbeispiel für Notepad ++ ( Suchmodus für reguläre Ausdrücke)

Find: (g|c|u|d)(et|reate|pdate|elete)_(.)([^\s (]+)
Replace: \U\1\E$2\U\3\E$4

Beispiel:

get_user -> GetUser
create_user -> CreateUser
update_user -> UpdateUser
delete_user -> DeleteUser
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.