如何使用正则表达式匹配字符串后跟一些关键字和多行
how to use regular expression to match strings followed by some keyword and multiple lines
我有这样的字符串:
...
xxxx
xxx
keyword1 xxxxx
xxxx
xxxx
xxxxx keyword2 yyyy
xxx
xxxx
xxx
...
其中 x 和 y 只是随机字符。我需要匹配keyword1后出现的第一个"keyword2 yyyy",keyword1后可能有多行。如何编写正则表达式?谢谢!
你可以使用这个正则表达式,
^(?s).*keyword1.*?(keyword2 yyyy).*$
解释:
- ^ --> 字符串开头
- (?s) --> 使点匹配新行
- .* 关键字 1.*? --> 匹配包含 keyword1 的字符串,其前后是任何进行非贪婪匹配的字符
- (keyword2 yyyy) --> 匹配您感兴趣的字符串
- .*$ --> 后跟任意字符,最后是输入结束
我有这样的字符串:
...
xxxx
xxx
keyword1 xxxxx
xxxx
xxxx
xxxxx keyword2 yyyy
xxx
xxxx
xxx
...
其中 x 和 y 只是随机字符。我需要匹配keyword1后出现的第一个"keyword2 yyyy",keyword1后可能有多行。如何编写正则表达式?谢谢!
你可以使用这个正则表达式,
^(?s).*keyword1.*?(keyword2 yyyy).*$
解释:
- ^ --> 字符串开头
- (?s) --> 使点匹配新行
- .* 关键字 1.*? --> 匹配包含 keyword1 的字符串,其前后是任何进行非贪婪匹配的字符
- (keyword2 yyyy) --> 匹配您感兴趣的字符串
- .*$ --> 后跟任意字符,最后是输入结束