Basenote のトークンを作成したい (Java MIDI プレーヤーを作成する)。
トークンを作成するための Basenote の正規表現はBASENOTE("[A-Ga-g]")
. これで、「C: Beethoven」というパターンに一致する名前トークンができました。(Cは作曲家の略です)。これは、私の名前トークンが一致するはずのものです: NAME("(?<=C:)[^\n\r\f]+")
. 簡単にするために、これは「C:」が後に続くものはすべて一致する必要があることを意味します
問題は、私のレクサーが Name の C を Basenote と見なし、次のように「C: Beethoven」をトークン化することです。
<Basenote> C <Name> Beethoven
ベートーベンが欲しいだけなのに。この問題を解決するにはどうすればよいですか?
PS: 私は正規表現パターン マッチングに非常に慣れていないので、そこに書いたことが何らかの意味を成すことを願っています。