我想要一个正则表达式来捕捉特定单词hello
出现的所有内容。
左包容和右包排。
hello all everything hello eve
将hello all everything
和hello eve
。
我使用的hello.*(?=hello)
使用Here的引用,请参阅Demo。但它只匹配一次,我尝试了一些可能没有运气。有可能吗?
输入:
hello i am xyz lol hello i
am abc ..;sda<>
hello
i am pqr ahe kiop hello
abc axyz
no
yes
hepdd
jol
hello
podjkd
dasfh
预期输出:
1:hello i am xyz lol
2:hello i
am abc ..;sda<>
3:hello
i am pqr ahe kiop
4:hello
abc axyz
no
yes
hepdd
jol
5:hello
podjkd
dasfh
答案 0 :(得分:1)
您需要在此正则表达式中使用s
(DOTALL)标志:
/(hello.*?)(?=hello|\z)/gmsi
\z
将匹配多行文字中的最后一个字符。s
时,.*?
也会匹配换行符
.*?
用于非贪婪的正则表达式