模式找到两个单词之间的所有数据

时间:2010-01-20 07:02:42

标签: regex

我使用以下模式查找两个单词之间的所有数据,放在多行中。

/ START(。+?)END /

但这似乎并没有像预期的那样奏效。有人可以帮我解决一个确切的模式。

感谢。

3 个答案:

答案 0 :(得分:2)

使用s标志:使用此标记,点(.)也会匹配换行符。

 /start(.+?)end/s

答案 1 :(得分:1)

你的意思是你想匹配像

这样的东西
START
  blah blah blah
  more blah
  and even more blah
END

?由于.默认情况下匹配换行符,因此您的正则表达式将无效。您需要提供单行(也称为“dot-all”)/s标志以使其与换行符匹配。

/START(.+?)END/s

答案 2 :(得分:0)

假设您可以使用Python作为示例。

>>> s="""
... START
...   blah1 blah2
...   more blah  
...   and even more blah
... END blah3 blah4 blah5 START blah 6
... text here here                    
... blah7 END ......                  
... START end END                     
... """                            
>>> for item in s.split("END"):
...     if "START" in item:
...        print item [ item.find("START")+len("START") : ]
...

  blah1 blah2
  more blah
  and even more blah

 blah 6
text here here
blah7
 end

将字符串拆分为“END”,浏览每个拆分项,检查START,然后执行子字符串。使用首选语言的拆分方法。