Призма js: регулярное выражение положительный взгляд за эквивалентом? - PullRequest
1 голос
/ 12 марта 2020

Я использую Prism. js, который является подсветкой синтаксиса и подсвечивает слово, соответствующее определенному регулярному выражению.
Я хочу, чтобы соответствовало любому слову после слова git, поэтому я Я пытался использовать положительный взгляд назад таким образом.

(?<=git )\w+

К сожалению, кажется, что положительный взгляд назад не поддерживается, поэтому я должен найти его эквивалентное выражение регулярного выражения. Есть ли способ сопоставить любое слово после слова git без использования положительного взгляда назад?

Например, я хочу сделать это без положительного взгляда назад.

"git checkout master" -> only "checkout"
"git log --graph" -> only "log"
"anything after the word git matches" -> only "matches"

Кроме того, я не могу использовать группу, потому что не могу сказать Prism, чтобы выбрать определенную группу. Это всегда будет выделять весь матч. Например, (?:git )(\w+) сохранит любое слово после слова git в первой группе, но оно соответствует слову git и слову после git. Так что он выделит

"git checkout master" -> "git checkout"
"git log --graph" -> "git log"
"anything after the word git matches" -> "git matches"

, и это не то, что я хочу.

1 Ответ

1 голос
/ 12 марта 2020

Как справедливо отмечено в комментариях @ WiktorStribiżew "если вы не можете получить доступ к группе и не имеете дополнительных функций, или оператор \ K, вы не можете делать то, что вам нужно". Вообще говоря это было бы так, однако, не зная слишком много о Prism поиске, по которому его документация привела меня к this , что в разделе опции lookbehind гласит:

"'lookbehind': эта опция уменьшает отсутствие в JavaScript функции lookbehind. Когда установлено значение true, первая группа захвата в шаблоне регулярных выражений отбрасывается при сопоставлении с этим токеном, поэтому она фактически ведет себя так, как если бы она была lookbehind."

enter image description here


Вышеприведенное должно означать, что вы можете попробовать шаблон типа: (\bgit )\w+, если вы установили lookbehind: true .

...