regex - Prismjs:正则表达式正后视等效?
问题描述
我正在使用 Prism.js,它是语法荧光笔,它突出显示匹配某些正则表达式的单词。
我想匹配单词之后的任何单词git
,所以我尝试像这样使用积极的lookbehind。
(?<=git )\w+
不幸的是,似乎不支持积极的后视,所以我必须找到它的等效正则表达式。有什么方法可以匹配单词后面的任何单词git
而不使用正面的lookbehind?
例如,我想在没有积极向后看的情况下做到这一点。
"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"
这不是我想要的。
解决方案
正如@WiktorStribiżew 在评论中正确提到的那样,“如果您无法访问组并且没有环视功能或 \K 运算符,那么您将无法做您需要的事情。” 一般来说,情况就是这样,但是,在不知道太多关于Prism
搜索的情况下,它的文档将我带到了this,它在lookbehind
选项部分指出:
“'lookbehind' :此选项可缓解 JavaScript 缺乏后向功能。当设置为 true 时,正则表达式模式中的第一个捕获组在匹配此标记时会被丢弃,因此它的行为就像是后向一样有效。”
以上应该意味着您可以尝试以下模式:(\bgit )\w+
当您设置lookbehind: true
.
推荐阅读
- android - 如何在包含 ArrayList 的类上实现 Parcelable
? - google-cloud-platform - 删除 Google Cloud Datastore 索引
- java - TestNG 找不到具有继承性的测试方法
- firebase - 直接从 express-fileupload 将图像上传到 Firebase 存储
- pip - 如何将 NEST 的 Python 模块安装到特定的站点包目录中?
- javascript - 在matter.js中按下一个键后,如何使一个事体isStatic为假?
- python - Python pandas 样式“pd.style.applymap.format('{:,.2f}%', subset=col)”不使用任何引擎将“%”符号保存到 excel
- istio - Istio 的 OPA Envoy 插件
- dictionary - 我找不到代码中缺少的内容,因此地图会更新
- python - 如何在pygame中进行平滑移动