Я использовал элемент управления ICSharp TextEditor, и он использует файл XML для разработки различных разделов подсветки синтаксиса (строки, комментарии и т. д.) с помощью механизма регулярных выражений С#.
Итак, я использовал это регулярное выражение для сопоставления символов аккорда (из этого вопроса):
\b[A-G](?:add|maj|j|m|\+|b|\#|sus|\d|°)*(?:\b|(?<=\#))
Проблема в том, что символ ‹ является частью синтаксиса XML, поэтому я заменил его на <, сделав так:
\b[A-G](?:add|maj|j|m|\+|b|\#|sus|\d|°)*(?:\b|(?<=\#))
Проблема в том, что после этого программа вылетает из-за недопустимого регулярного выражения. Я сузил его, и проблема определенно связана с <.
Итак, есть ли другой способ избежать угловой скобки ‹, при этом позволяя механизму регулярных выражений использовать его.