我想为Basenote (编写Java MIDI播放器)创建一个令牌。
Basenote用于生成令牌的正则表达式是BASENOTE("[A-Ga-g]")。现在,我有一个名字标记,它必须与模式"C:贝多芬“相匹配。(C代表作曲家)。这就是我的Name标记应该匹配的内容:NAME("(?<=C:)[^\n\r\f]+")。为了简单起见,这意味着后面跟“C:”的任何东西都应该匹配
问题是,我的词法分析器认为名称中的C是一个基数,它将"C: Beethoven“标记化为:
<Basenote> C <Name> Beethoven而我只想要贝多芬。如何解决此问题?
PS:我是正则表达式模式匹配的新手,所以我希望我在那里写的任何东西都有意义。
发布于 2013-03-30 05:01:15
试着使用下面的代码:
BASENOTE("[A-Ga-g](?!:)")https://stackoverflow.com/questions/15711241
复制相似问题