Bestimmtes Regexp gesucht.

Hallo werte Gesellen!

Ich bin selbst nicht so bewandt mit Regulären Ausdrücken, auch wenn sie sehr praktischund eigentlich genial sind.


Ich suche eine Regulären Ausdruck für folgenden befehl (in Worten):
"Suche jedes Wort in einer Zeile, in der am Anfang ein '*' steht und ersetze jedes Großgeschriebene Wort durch dasselbe klein geschrieben - außer: Das wort steht am Anfang oder es ist das Wort XY"

Die Anwendung: Ich muss in Eclipse Galileo für Java meinen Programmcode (Kommentare) Rechtschreibmäßig ausbessern und habe schon sehr viele ommentare geschrieben.Nun fiel mir auf, dass ich den Fehler gemacht habe, englische Wörter allzu oft groß zu schreiben.Manche Wörter sind aber eigennamen und solllten groß bleiben.

Vielen Dank im Voraus!
pi()
 
Hi,

ich weiss nicht ob es klug wäre zu versuchen das in einem RegEx abzufackeln so Zwecks Übersichtlichkeit und Wartbarkeit ^^ Andererseits weiss ich nichtmal ob deine Anforderungen überhaupt umsetzbar sind *denk*, denn gerade dein letzter Teil ist ja eher was für if-else oder?

Ich würde mir das runterbrechen und mit etwas Programlogik schmücken^^

cu
serow
 
Ja das ist wohl keine So schlecht idee.

Also zum finden eines großen Wortes (nicht am Anfang) sollte es in etwa so gehen: ( [A-Z]+)([a-z]*)

Stimmt das?
Wie könnte ich in eclipse mit der Ersetzungsfunktion dann sagen "nimm das wort, das gematcht hatr und mach den ersten buchstaben klein?"

Ansonsten mach ich es halt wirklich in einem Programm.......

Danke jedenfalls für deinen Hinweis und lg
 
Hi,

also um auf Wortanfänge und -enden zu matchen fällt mir \b und \B ein. Weiss grad nicht ob ich das von egrep oder Perl kenne ... Schau mal ob es für dein Regex Library auch derartiges gibt.

( [A-Z]+)([a-z]*)

Kann denn ein Wort wirklich mit zwei oder mehr Großbuchstaben beginnen? Okay vllt verwendest du Abkürzungen wie NFS, NTP o.Ä. aber die willst du ja dann nicht in Nfs, Ntp etc umwandeln oder? Außerdem werden hier Bindestriche vernachlässigt. Aber auch hier muss man evtl wieder schaun ob es nach dem Bindestrich groß oder klein weitergehen soll.

cu
serow
 
Ich wüsste höchstens wie man den nächsten Buchstaben klein macht..
Also z.B:

s/(\b)([A-Z])/\1\l\2/g;

Hier wird nach einem Wortbegrenzer gesucht.
Also z.B ein Leerzeichen auf das dann ein großer Buchstabe folgt.

Der nächste Buchstabe nach dem Leerzeichen wird dann Falls er groß is klein gemacht.

das \b steht aber nicht nur für Leerzeichen sondern auch für Zeilenanfänge soweit ich weis.

Hab leider schon lange nichts mehr damit gemacht..

Aber vielleicht hilft es dir ja ein bisschen
 
Zurück
Oben