Perfekte Groß/klein-Schreibung


#1

Hallo Alle!

Tja ... mit den RegExp hab ichs nicht so - möchte aber in meiner Sammlung eine "ordentliche" groß/klein-Schreibung ...

Folgende Überlegungen:

Grundsätzlich sollte jedes Wort im Titel / Artist / Verzeichnisnamen / Albumnamen groß geschrieben werden - das ist ja noch leicht mit "Schreibweise ändern" zu erledigen - außer den Verzeichnisnamen: mp3s\albumname\01 - interpret - titel.mp3 ... alles außer dem Albumnamen wird damit geändert.

ABER:
Es gibt eine Liste mit Wörtern, die sollen klein bleiben:
is, ist, in, im, an, der, die, das, the, a, it, if, of, for, or, to, and, und, but, by, mp3 ... aber nur wenn sie nicht am Beginn des entsprechenden Feldes stehen:

"Sleepless In Seattle" -> "Sleepless in Seattle"
"In Another World" -> "In Another World"

außerdem sollen römische Zahlen berücksichtigt werden:
da hab ich folgendes gefunden:
RegExp: (^|\W)(?:M{0,3})(?:D?C{0,3}|C[DM])(?:L?X{0,3}|X[LC])(?:V?I{0,3}|I[VX])(?=(.\s|\s|)|$))
Ersetzen: $upper($0)

dann sollen alle Abkürzungen mit Punkten immer richtig dargestellt werden:
z.B. "O.s.t." -> "O.S.T."

hab da folgendes gefunden:
RegExp: ( |.|^)(\w)(?= |.|$)
Ersetzen: $1$upper($2)
UND
RegExp: ([^-])( \u )
Ersetzen: $1$lower($2)

zusätzlich sollen bestimmte Namen immer groß geschrieben werden:
Abba -> ABBA
Acdc -> ACDC
Ppk -> PPK
Atb -> ATB
Atc -> ATC
Cd -> CD
...

Ach ja ... da sind dann noch die McIrgendwas. Da hab ich auch was gefunden:
RegExp: ( Mc| Mac)([a-z])
Ersetzen: $1$upper($2)

Würde mich freuen, wenn irgendwer sich da schon Gedanken gemacht hat, und was konstruktives dazu schreiben könnte - vor allem die klein geschriebenen Wörter, aber nur, wenn sie nicht am Feldanfang stehen - vor allem: muß man da für jedes einzellne Wort eine Ersetzung vornehmen?

Lg

Christian


#2
  1. Wörter, die klein bleiben sollen außer am Anfang:
    RegAusdr:
    \s(the|der|die|das|to|of|by|for|from|a|an|as|and|at)(?= )
    Ersetzen:
    $lower($0)

  2. bestimmte Namen immer groß
    RegAusdr:
    \b(ABBA|ACDC|PBK|ATB|ATC)\b
    Ersetzen:
    $upper($0)