【发布时间】:2018-01-31 20:10:18
【问题描述】:
我正在尝试为 VSCode 编写一个 sytnax 荧光笔,它使用 TextMate 格式。我有一个单行 cmets 条目,从一个示例中复制而来,它工作正常,但我想扩展/修改它。
"linecomment": {
"name": "comment",
"match": "(%)(?!(\\[=*\\[|\\]=*\\])).*$\n?",
"captures": {
"1": {
"name": "comment"
}
}
},
问题是,这里使用的正则表达式在我能找到的任何地方都没有记录。我了解基本的 Grep 和正则表达式背后的理论,但我不知道 ?!(\\[=*\\[|\\]=*\\])).*$\n? 中发生了什么。特别是,我不知道哪些字符在正则表达式语言中,哪些正在被匹配。
谁能给我解释一下:
- 这里使用了哪种正则表达式格式,它的文档记录在哪里?
- 给定的正则表达式是什么意思,它的部分是什么?
【问题讨论】:
-
Specific 正则表达式通常没有文档记录。但是有很多关于正则表达式的参考指南(可通过网络搜索获得)。
-
见regex101.com/r/NfV9RP/1,解释在右边。
-
我认为 #1 问题的答案在于 Textmate 手册。它使用 Oniguruma 语法macromates.com/manual/en/regular_expressions (20.3)
标签: regex visual-studio-code syntax-highlighting textmate textmatebundles