正则表达式匹配但不包括在另一个单词之前的单词

时间:2014-07-08 09:00:01

标签: regex

我在一行中有两个特定的字词dogcat

并在dog之前显示cat

如何创建一个正则表达式,告诉我包含dogcat的所有行,但只显示dogcat之后的单词,包括{{1 }},但不是cat

1 个答案:

答案 0 :(得分:2)

选项1:Lookbehind

(?<=dog).*?cat

详细说明:

  • (?<=dog) lookbehind声称当前位置之前的内容是dog
  • .*?懒惰地匹配所有字符......
  • cat匹配文字字符

选项2:\K(PCRE,Perl,Ruby 2 +)

dog\K.*?cat

\K告诉引擎放弃到目前为止匹配的内容

选项3:捕获组(不支持其他两个选项的JavaScript和其他引擎)

dog(.*?cat)

括号捕获您想要的组1.您必须以您的语言从组1中检索匹配。