正则表达式 - 将单词匹配限制为以特定单词开头的行

regex - limit word match to the line starting with a specific word

我无法解决这个问题。在以“@....”开头的行列表中,我想创建一个表达式 第一:将匹配限制为以“@属性”开头的行。
第二:只将匹配行上的词捕获到一个组中 额外:排除所有 words/tags 以破折号 '-t'

开头

我可以使用正面(前面|后面)匹配以“@属性”开头的行,但是,我无法匹配直到行尾的单词。

我正在使用它为 sublime 文本包创建语法突出显示。

regex editor - link to expression

使用:

(^@property|(?!^)\G)(.*? )\K([^-\n]\w+)


细分:

(^@property|(?!^)\G)

  • ^@property
    匹配以 @property
  • 开头的行

  • (?!^)\G
    从上一个成功的匹配项开始搜索

(.*? )

匹配任何文本,直到以下捕获组(前面是 space

\K([^-\n]\w+)

  • \K
    从当前结果中丢弃所有前面的匹配项

  • ([^-\n]\w+)
    找到前面没有破折号或换行符的单词