gpt4 book ai didi

regex - 所有以冒号结尾但不以破折号开头的行的同步匹配正则表达式

转载 作者:行者123 更新时间:2023-12-01 01:28:21 28 4
gpt4 key购买 nike

我有以下格式的文件:

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 任务标题:
定义任务标题:

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

任务细节c:

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


  • 我尝试了一些东西,但它们似乎无法正常工作。

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

    这导致仅突出显示任务标题的最后一个单词以及冒号。它还突出显示任何带有冒号的任务详细信息。
    syn match myTask "[^-].*[A-Z].*:$"

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

    有任何想法吗?

    谢谢

    更新:

    嗯,比利·穆恩的例子直截了当,涵盖了一种永远正确的场景。但是,还有一些其他答案也有效(感谢 YGomez)。我将根据这些或我从其他答案中获得一些灵感后设法获得工作的样本添加一些示例(以防其他人在 future 寻找类似问题的解决方案);
    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*\c\w.*:$"

    最佳答案

    尝试这个:

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

    关于regex - 所有以冒号结尾但不以破折号开头的行的同步匹配正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6362031/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com