Регулярное выражение для идентификаторов переменных - PullRequest
2 голосов
/ 01 мая 2020

Существует набор правил для идентификаторов (имен) переменных:

  1. Может содержать строчные и заглавные буквы, цифры и знак подчеркивания _;
  2. Может быть только начинаются с буквы или подчеркивания;
  3. Если идентификатор начинается с подчеркивания, вторым символом должна быть буква или ди git, но не подчеркивание;

Я написал выражение [A-Za-z_][0-9A-Za-z_]{0,} для 1 и 2 правил, но не знаю, что делать с 3 правилом.

Ответы [ 2 ]

2 голосов
/ 01 мая 2020

Вы можете использовать чередование |, начинающееся с подчеркивания или символа A-Za-z

^(?:_[A-Za-z0-9]|[A-Z-a-z])\w*$

Пояснение

  • ^ начало строки
  • (?: группа без захвата
    • _[A-Za-z0-9] совпадение _ или любой из A-Za-z0-9
    • | или
    • [A-Z-a-z] Совпадение с символом A-Za-z
  • ) Закрыть группу
  • \w* Совпадение 0+ раз слово char
  • $ Конец строки

Regex demo

Или с использованием границ слов

\b(?:_[A-Za-z0-9]|[A-Z-a-z])\w*\b

Regex demo

0 голосов
/ 01 мая 2020

Попробуйте с этим: ^[A-Za-z_]\w*(?<!^__.*)

Демо здесь

Объяснение:

  • ^ - означает начало строки

  • [A-Za-z_] - означает начало с буквы или только _

  • \w* - означает, что может произойти Символ 0 или более слов (az, AZ, 0-9 и _)

  • (?<!^__.*) - означает, что не может начинаться с __

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...