Hallo Linuchs,
warum die manuelle Markiererei? Wenn Du eine Akkord-Sequenz findest, suche einfach das nächste Whitespace (' ', '\n', '\t', '-'). Eventuell musst Du auch noch das Stringende mit berücksichtigen (oder häng einfach vorher ein " " an die Zeile an 😉)
Unterscheide, ob Du ein '-' oder ein Whitespace gefunden hast, abhängig davon nimmst Du das gefundene Zeichen mit ins "Wort" oder nicht. Und dann packst Du den Fund in <x-a> </x-a> ein.
Das geht ganz gut mit einer Regex: /\((?<accord>-?\d)\).*?(?<delim>-|\s|$)/dg
. Die d-Option aktiviert die Indizes-Ermittlung, so dass Du genau weißt, wo die Treffer sind.
Heute ist's mir aber zu spät, um eine passende Transform-Funktion drumrum zu schreiben.
Rolf
--
sumpsi - posui - obstruxi
sumpsi - posui - obstruxi