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

时间:2016-04-14 21:06:22

标签: python regex regex-lookarounds

我无法弄清楚这个问题..在以'@ ....'开头的行列表中,我想创建一个表达式 first:将匹配限制为以'@property'开头的行 第二:仅捕获匹配行上的单词到单个组 extra:排除以短划线'-t'开头的所有单词/标签

我能够使用正面外观(前面跟后面)来匹配以'@property'开头的行,但是,我只是在匹配单词直到行尾时才会遇到问题。

我正在使用它为sublime文本包创建语法高亮。

regex editor - link to expression

1 个答案:

答案 0 :(得分:1)

使用:

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

demo

故障:

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

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

OR

  • (?!^)\G
    从上一次成功比赛开始搜索

(.*? )

匹配任何文本,直到以下捕获组(前面有空格

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

  • \K
    丢弃当前结果中的所有先前匹配

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