Tonnamen reguläre Ausdrücke

Begonnen von Hilflos-im-Code, Freitag, 2. Oktober 2020, 11:37

« vorheriges - nächstes »

Hilflos-im-Code

Ich weiß zwar, was reguläre Ausdrücke sind, aber für mich dürfte das wegen mangelnder Routine zu einer ziemlichen Denksportaufgabe werden.

Ich schreibe meine Tonnamen in absoluter Tonhöhe und in der Sprache Deutsch. Was muss ich für einen regulären Ausdruck verwenden, um alle möglichen Tonnamen zu erwischen. Vielleicht hat das jemand für sich gelöst.

ingmar

#1
Willst du nur Tonnamen isolieren oder Noten? Denn zu diesen gehört ja mehr.

Die zwölf möglichen Tonhöhen kannst du einfach aufzählen, durch die Pipe (|) getrennt.

Aber dahinter können entweder beliebig viele Kommas oder beliebig viele Hochkommas folgen, oder nichts. Dann können Ziffern kommen (bei mir auch \breve), oder nicht, dann Punkte oder nicht, schließlich ( oder [ oder nicht, oder gewisse Dinge wie \fermata. Für die Musik, die ich selbst so schreibe, würde das wahrscheinlich schon reichen. Fragt sich, wie komplex deine Musik ist.

Denk dran, dass einige Zeichen eine Metabedeutung haben (wie d oder die Klammern), daher durch \ eingeleitet werden müssen.

Vor der Note muss ein Zeilenbeginn oder ein Leerzeichen stehen, dahinter ein Leerzeichen oder Zeilenende; diese gehören aber nicht zur Tonhöhe.

Denkst du, das reicht? Das kriegst du doch hin, oder? : - )

EDIT: Zwei Ergänzungen

Rudi Guggt

Hallo,

ZitatVor der Note muss ein Zeilenbeginn oder ein Leerzeichen stehen, dahinter ein Leerzeichen oder Zeilenende;

Das sehe ich anders. Unter bestimmten Bedingungen kann das Leerzeichen entfallen, vor der Note kann auch eine Klammer stehen, auch kann der Notenname komplett fehlen und nur die Dauer notiert sein.

Was genau will Hilflos im Code eigentlich erreichen?

mfg
Rudi

Hilflos-im-Code

Das Problem hat sich für mich erledigt. Letztendlich geht es darum diverse Sachen nach einem MusicXML-Import aufzuräumen. Momentan funktioniert für mich ganz gut.

[a-h][ies]{0,1}{0,1}[,']{0,10}[124836]?[624.]?[8.]?