加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Syn Match Regex Expression用于以冒号结尾的所有行,但不以短划

发布时间:2020-12-15 21:03:36 所属栏目:安全 来源:网络整理
导读:我有一个以下格式的文件: Abc Task Header:- task detail a- task detail bDef Task Header:- task detail c: - task sub detail c1 - task sub detail c2- task detail d 我想让我的语法文件匹配(并突出显示)以下行: Abc任务标题: Def任务标题: 我不希
我有一个以下格式的文件:

Abc Task Header:

- task detail a

- task detail b


Def Task Header:

- task detail c:

    - task sub detail c1

    - task sub detail c2

- task detail d

我想让我的语法文件匹配(并突出显示)以下行:

Abc任务标题:
Def任务标题:

我不希望以下行匹配并突出显示:

任务细节c:

注意事项:

>所有任务标题以字母开头,以冒号结尾.
>除了上面列出的任务标题之外,任务标题没有任何一致的命名约定(因此名称中没有任务标题…这只是一个示例名称)
>如果任务详细信息具有子任务详细信息,则它们可能以冒号结尾.
>任务详细信息始终以 – (破折号)字符开头.
>任务详细信息不缩进.这是使用列表时StackOverflow编辑器的副作用.
>显示的所有子弹实际上都是 – (破折号)在文件中.这也是StackOverflow编辑器的副作用.

我尝试了一些东西,但它们似乎没有正常工作.

例如

syn match myTask "[A-Z]*:$"

这导致仅突出显示任务标题的最后一个单词以及冒号.它还突出显示具有冒号的任何任务详细信息.

syn match myTask "[^-].*[A-Z].*:$"

这会导致突出显示整个任务标题和冒号(所需行为),但会突出显示包含冒号的任何任务详细信息.它不突出显示破折号,但突出显示其余部分.

有任何想法吗?

谢谢

更新:

好吧,Billy Moon的例子直截了当,涵盖了一直是真实的情景.然而,还有一些其他答案也有效(感谢YGomez).我将在这里添加一些样本,基于这些或我在其他答案得到一些启发之后能够得到工作的样本(如果其他人正在寻找未来类似问题的解决方案);

syn match myTask "^[^-].*:$"

syn match myTask "[A-Z]*:$"
syn match myTask "^s*[A-Z].*:$"

// These two are equivalent.
syn match myTask "^s*[A-Za-Z].*:$"
syn match myTask "^s*cw.*:$"

解决方法

试试这个:

syn match myTask "^[^-].*:$"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读