lungernde Kleinbuchstaben am Tagende löschen


#1

Hallo,

beim Ersetzen mit reg. Ausdrücken (und Ersetzen mit nichts) findet der Ausdruck \s\l+$ wunschgemäß ein oder mehrere Kleinbuchstaben am Tagende, die einem Leerzeichen folgen:

Maurizio Pollini p => Maurizio Pollini

Wieso aber entfernt derselbe Ausdruck bei nochmaliger Anwendung den Nachnamen?
Maurizio Pollini => Maurizio

Und wenn ich schonmal frage:
Was bedeutet $0 in regex?
Wenn in regex + 'einmal oder mehrmals' bedeutet und ? 'keinmal oder einmal', wieso bedeutet dann der Ausdruck (.+?) nicht genau ein Zeichen?

Vielen Dank, und noch einen schönen Regentag,

palmino


#2

Diesen "Fehler" kann ich nicht nachvollziehen.

Wenn eine Aktion "Ersetzen mit Regulärem Ausdruck" benutzt wird, und der "Fehler" tritt auf, dann mit der Option "Groß-/Kleinschreibung" experimentieren.

$0
Der komplette Treffer.

(.+?)
Sub-Expression, ein beliebiges Zeichen, ein oder mehrmals, nicht gierig.

DD.20110702.2035.CEST



#3

Super, das war's. Ich hatte das Häkchen 'Groß/Kleinschreibung berücksichtigen' nicht gesetzt. Das finde ich aber schon tückisch, wenn man mit regex explizit nach Kleinbuchstaben sucht und man dieses Häkchen nicht setzt, dass dann auch großgeschriebene Wörter gelöscht werden (bei meiner Vorgehensweise über Aktion > m. reg. Ausdruck ersetzen, bei wiederholter Anwendung).

Vielen Dank für die Hilfe und die Klarstellung,

palmino


#4

Ja, 'palmino', du hast recht, es ist verwirrend, weil die Ersetzen-RegExp-Aktion und die RegExp-Funktion, betreffend das Respektieren der Groß-/Kleinschreibung, in der jeweiligen Grundeinstellung genau gegensätzlich funktionieren.

DD.20110703.0752.CEST