Я работаю над подсветкой синтаксиса для моего текстового редактора.Я использую Regex для обнаружения определенных шаблонов, но я не могу понять, как создать синтаксическую строку для работы с этими правилами:
- '#' Обозначает непосредственное значение (или константу).Недостаток этого относится к адресу памяти.Всегда в начале числовой строки.
- '$' Обозначает шестнадцатеричное значение.Принимает 0-9 и AF (также в нижнем регистре)
- '%' Обозначает двоичное значение.Принимает только 0-1.
- Не включает префикс (исключая '#') - десятичное значение.Может быть отрицательным
Обычно числовые ограничения могут быть 8 или 16 битами, но использование выражений \ xXX и \ uXXXX, по-видимому, не работает во время записи, поскольку жалуется, чтодостаточно цифр при записи значения.Моя текущая настройка делает подсветку, но она не «снимает выделение» с текста, если введены недопустимые символы для числового значения (например, «K» для шестнадцатеричного значения).Это моя текущая синтаксическая строка:
string number = @"(\$.+?$|\%.+?$|\#.+?$)";
Можно ли вообще точно сделать выражение числа?Я также взглянул на ссылку на синтаксис, но не смог объединить разные вещи, чтобы приблизиться к этому.