我在一行中有两个特定的字词dog
和cat
。
并在dog
之前显示cat
。
如何创建一个正则表达式,告诉我包含dog
和cat
的所有行,但只显示dog
到cat
之后的单词,包括{{1 }},但不是cat
。
答案 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中检索匹配。