在找到第一次出现后逃离正则表达式

时间:2017-05-25 21:09:18

标签: regex

我的数据库中有以下代码:

[tab title="Smart Player"]
[videojs mp4="http://webiste.com/video.mp4"]
[/tab]

[tab title="Gvideo Player"]

[videojs_video url="https://example.com/open?id=0B5i7u5TAodOFa0JmVGo2TDZjc1E"]

OR

[gvideojs gdid="0B5i7u5TAodOFa0JmVGo2TDZjc1E"]
[/tab]

[tab title="FV Player"]
[fvplayer src="http:/example.com/video.mp4" width="848" height="480"]
[/tab]

[tab title="Mp4 Player"]
<iframe src="https://sites.com" width="848" height="480" frameborder="0" marginwidth="0" marginheight="0" scrolling="NO" allowfullscreen="allowfullscreen"></iframe>
[/tab]

[tab title="Source 4"]

<iframe src="http://source.com/video1.mp4" width="848" height="480" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" allowfullscreen="allowfullscreen"></iframe>
[/tab]

[/tabs]

我希望删除

中的所有内容
  

[标题标题=&#34; Gvideo播放器&#34;]

     

[/标签]   包括上面的表达。

我有以下正则表达式:

  

(([标题标题=&#34; Gvideo播放器&#34;])[\ s \ S] *([/ tab]))

它正确启动但继续搜索,直到最后一个[/ tab]

是否可以在仅找到第一个[/ tab]

后停止执行

...

感谢任何帮助,谢谢

1 个答案:

答案 0 :(得分:0)

使用*?运算符。默认情况下,*运算符进行贪婪搜索。 *?使它不贪心。

((\[tab title="Gvideo Player"\])[\s\S]*?(\[\/tab\]))

[我已经编辑了你的答案因为上面的代码错了]谢谢你的帮助。它起作用了: - )