如何使用正则表达式匹配后跟一些关键字和多行的字符串

时间:2018-11-07 06:22:50

标签: regex string pattern-matching matching

我有一个像这样的字符串:

...
xxxx
xxx

keyword1 xxxxx
xxxx
xxxx
xxxxx keyword2 yyyy
xxx
xxxx

xxx
...

其中x和y只是随机字符。我需要匹配出现在keyword1之后的第一个“ keyword2 yyyy”,并且在keyword1之后可能会有多行。如何编写正则表达式?谢谢!

1 个答案:

答案 0 :(得分:-1)

您可以使用此正则表达式,

^(?s).*keyword1.*?(keyword2 yyyy).*$

说明:

  • ^->字符串开头
  • (?s)->启用点以匹配新行
  • 。* keyword1。*? ->匹配一个包含keyword1的字符串,该字符串在进行非贪婪匹配的任何字符之前和之后
  • (keyword2 yyyy)->匹配您感兴趣的字符串
  • 。* $->后跟任何字符,最后是输入结尾

Demo