我使用的是Prism.js,它是语法高亮器,它突出显示了匹配某些正则表达式的单词。
我想在单词git,之后匹配任何单词,所以我尝试像这样使用正向查找。
(?<=git )\w+不幸的是,它似乎不支持正面查找,所以我必须找到一个等价的正则表达式。在不使用正向后查找的情况下,有任何方法可以在单词git后面匹配单词吗?
例如,我想要做到这一点,没有积极的后盾。
"git checkout master" -> only "checkout"
"git log --graph" -> only "log"
"anything after the word git matches" -> only "matches"此外,我不能使用组,因为我不能告诉棱镜选择某些组。它将永远突出整个比赛。例如,(?:git )(\w+)将在第一个组中的单词git之后保存任何单词,但它与单词git和后面的git匹配。所以它会突出显示
"git checkout master" -> "git checkout"
"git log --graph" -> "git log"
"anything after the word git matches" -> "git matches"这不是我想要的。
发布于 2020-03-12 12:09:45
正如@WiktorStribiżew评论中正确地提到的那样:“如果您无法访问一个组,并且没有查找功能,或者\K运算符,您就不能满足您的需要。”但是,通常情况下,如果不太了解Prism --通过它的文档进行搜索--就会让我了解这,在lookbehind选项部分,该部分指出:
“‘回溯’:此选项缓解了JavaScript缺乏查找功能的问题。当设置为true时,正则表达式模式中的第一个捕获组在匹配此令牌时会被丢弃,因此它的行为实际上就像是在查找。”

以上所述意味着当您设置了(\bgit )\w+时,可以尝试一个类似于:lookbehind: true的模式。
https://stackoverflow.com/questions/60650075
复制相似问题