我在一行中有两个特定的词 saydog和cat。
并且说dog之前出现cat。
我如何制作一个正则表达式,它告诉我包含dog和的所有行cat,但只显示dog直到之后的单词cat,包括cat,但不是dog。
选项 1:后视
(?<=dog).*?cat
Run Code Online (Sandbox Code Playgroud)
细节:
(?<=dog)向断言当前位置之前的内容是dog.*?延迟匹配所有字符直到...cat匹配文字字符选项 2:\K(PCRE、Perl、Ruby 2+)
dog\K.*?cat
Run Code Online (Sandbox Code Playgroud)
告诉\K引擎放弃到目前为止与最终匹配的内容
选项 3:捕获组(JavaScript 和其他不支持其他两个选项的引擎)
dog(.*?cat)
Run Code Online (Sandbox Code Playgroud)
括号捕获您想要组 1 的内容。您必须以您的语言从组 1 中检索匹配项。