[英]vim syntax match using regex and non-greedy modifier
我正在尝试创建一种自定义语法,其结构类似于以下内容
Title String:
{
...,
...,
...
}
Title String2:
{
...,
{
...,
...,
...
}
...,
...,
...
}
我已经能够编写用于检测{ ... }
区域内所有内容的syn match
和syn region
语句,但是我无法提出与Title Strings相匹配的语句。
这是我的区域声明:
syn region dbgMessage start="{" end="}" contains=ALLBUT,dbgMessageHeader
我试图添加类似这样的东西来检测标题字符串,我希望它是包括但不包括开头括号在内的所有内容。
syn match dbgMessageHeader "\v.\{-}\ze(\{)"
我的推理:
.\\{-}
应该占用所有字符并且不要贪婪 \\ze(\\{)
应该向前寻找一个括号,并在找到一个括号时停止 一个额外的挑战是,如果我使代码处于展平状态,那么该语法可以正确检测所有内容,那就太好了,例如:
Title String: { ..., ..., ... }
Title String2: { ..., { ..., ..., ... } ..., ..., ... }
同样,我当前的实现可以正确地将括号内的所有内容以扁平状态和格式化状态进行匹配,因此,如果我能找出在两种情况下也都可以与标题字符串匹配的内容,那就太好了。
看到我想念的东西吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.