RegExp (javascript) :: найти группу php переменных, включая символ $ (Enlighter JS) - PullRequest
0 голосов
/ 03 мая 2020

Я пытаюсь найти несколько пользовательских php переменных из целой строки "кодового блока", чтобы просветить их с помощью Enlighter JS (v3.3) https://github.com/EnlighterJS/EnlighterJS/commit/a5854c3455b68790aa21d56e2ceb7b734dd72913

В моем кодовом блоке php я использую кучу повторяющихся пользовательских переменных, которые наиболее вероятно можно рассматривать как глобальные константы, такие как:

$TIME_MS, $GET_URL, $FILE_TYPE

Мне удалось просветить константы без символа $:

regex: /\b(TIME_MS|GET_URL|FILE_TYPE)\b

Но как мне также поймать символ $? Это не так t работа:

/\b(\$TIME_MS|\$GET_URL|\$FILE_TYPE)\b

Спасибо и всего наилучшего,

Maxxx

Ответы [ 2 ]

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

Это, кажется, работает сейчас:

    { 
      regex: /(\$TIME_MS|\$GET_URL|\$FILE_TYPE)\b/gi,
      type: "gvar",
    },

DEMO

Поправьте меня, если я пропустил что-то вроде разрывов строк и прочее

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

Границы слова не будут работать перед символом $, потому что это не символ слова. \b находит границы между словесными и несловесными символами. Вместо этого вы можете использовать (?<!\S)\$:

(?<!\S)\$(TIME_MS|GET_URL|FILE_TYPE)\b

Demo

Если ваш инструмент регулярных выражений не поддерживает lookbehinds, то, возможно, вы можете просто найдите пробел перед $. Тем не менее, это не отлавливает случаи, когда переменная $ начинает строку или ввод.

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