Nach einem "." soll GROSS geschrieben werden


#1

Hallo zusammen,

weils einige Abkürzungen gibt, will ich eine neue Aktion, die nach einem Punkt im TAG ein Zeichen groß schreibt:

A.b.c. --> A.B.C.

Habs schon mit dem was in der FAQ zu dem "O'" steht rumprobiert:

Nach einem O' wie bei O'Hugo ist Großschreibung erwünscht

Habs einfach so gemacht:

.(.{1}) ersetzen durch .$upper("$1")

Da wird aber jedes zweite Zeichen durch einen "." ersetzt und das nächste groß, aber es soll ja nur ein großer Buchstabe nach einem Punkt kommen.

Danke im Voraus für eure Hilfe


#2

Hallo Fux,

wenn Du die Buchstaben nach einem Leerzeichen auch groß geschrieben haben möchtest ist es am einfachsten, wenn Du Dir eine Aktion Schreibweise anlegst und unter Wortbeginn nach noch den Punkt einfügst.

Viele Grüße,
~ Florian


#3

Danke Florian,

das ist natürlich die elegantere Lösung. Hätt mir aber auch selber einfallen können. Hab ich ja genauso mit der "(" gemacht :wink: .

Gruß
Fux


#4

Ein Punk matcht jedem beliebigen Zeichen. also hast du folgendes gemacht: suche 2 (aufeinanderfolgende,) beliebige Zeichen, und ersetze sie durch einen Punk gefolgt von der großen Version des zweiten Zeichens.

Du musst den ersten punkt escapen.
.(.{1}) ersetzen durch .$upper("$1") geht.


#5

Danke für den Hinweis.
Hat gleich funktioniert. Jetzt wundert mich nur eines: Warum muß ich dann den "." in "ersetzen durch" nicht auch so: ".$upper..." escapen.

Anderes Beispiel: Hab jetzt versucht sowas: "( XYZ....)" in sowas "(XYZ....)" umzuwandeln und hier brauch ich jetzt beim ersetzen den "Escaper

 \(( {1}) ersetzen durch \(

Und was mir auch noch nichts so ganz klar ist, was macht das "$"-Zeichen?
(.{1}) bedeutet ja wohl soweit ich das jetzt mitbekommen hab: irgendein Zeichen mit der Länge 1.


#6

Hallo Fux,

Die Klammern musst Du wegen den eingebauten Funktionen ($upper, $lower, usw) escapen. Ansonsten kommt dort der Parser durcheinander.

Wenn Du reguläre Ausdrücke baust, kannst Du mit runder Klammerung (...) Gruppen definieren. Wenn ein regulärer Ausdruck "matched" - also zutrifft - steht in $1 der Treffer der ersten Gruppe, in $2 der Treffer der zweiten Gruppe, usw.

Viele Grüße,
~ Florian