我想爲Basenote創建一個Token(編寫Java MIDI播放器)。不想匹配char和其他char - 正則表達式
Basenote使它成爲令牌的正則表達式是BASENOTE("[A-Ga-g]")
。現在,我有一個名稱令牌,它必須與模式「C:貝多芬」相匹配。 (C代表作曲家)。這是我的名字令牌應該匹配的:NAME("(?<=C:)[^\n\r\f]+")
。爲簡單起見,這意味着什麼其次是「C:」應該匹配
的問題是,我的詞法分析認爲,在名稱中的C是Basenote,它標記化「C:貝多芬」如下:
<Basenote> C <Name> Beethoven
雖然我只是想要貝多芬。我該如何解決這個問題? PS:我很新的正則表達式模式匹配,所以我希望無論我寫在那裏是有道理的。
Ununderstandable。 – Maroun
你能給我們一個原始字符串的例子,告訴我們你想從中得到什麼。 –
原始字符串是(「C:貝多芬」),我只想要貝多芬。我的代碼會給我C和貝多芬(C作爲基調,貝多芬作爲一個名字),因爲我有一個可以捕獲A-Ga-g中任何角色的Basenote字段。我想解決這個問題。對不起,如此不清楚。我只是自己學習東西。謝謝。 – newenthusiast