2015-11-14 2 views
0

мне нужно сделать следующий чек:Регулярное выражение, которое проверяет первый символ

  • Первый символ либо алфавитный символ или _
  • Все остальные символы являются либо алфавитный, числовой, или _

Я пробовал:

^('A'..'Z' | '_') ('A'..'Z' | '0'..'9' | '_')* 

Но он жалуется, что он не знает, что '^' есть. Итак, как я могу проверить, с чего это начинается в ANTLR?

ответ

0

Вы почти находитесь. Удалите символ^(который обозначает совпадение, начинающееся в начале строки в регулярных выражениях), и это должно быть оно.

+0

@ aurora91 Также, чтобы добавить к ответу, antlr lexer не работает так, как с регулярным выражением. Он рассматривает входные данные не в терминах строк. Таким образом, он будет соответствовать этому шаблону с остальной частью текста независимо от того, где он начинается. (Я думаю, по крайней мере) – Har

Смежные вопросы