正则表达式捕获所有内容而不是直到第一个定义的字符串

时间:2014-10-09 17:05:34

标签: javascript html regex

我正在转换一些教程的内容并提取html标签。 我制作了这个正则表达式:/<html\>(?!html)([\s\S]*)<\/html\>/试图让它只捕获第一个HTML组的内容,但它捕获了所有内容,直到最后一个html,尽管我的(可能是错误的位置)否定前瞻。

我在这里想念什么? (live example

This is text
<html>
  <div>
    some content
  </div>
</html>

This is more text
<html>
  <div>
    some content
  </div>
</html>

2 个答案:

答案 0 :(得分:1)

<html>(?:(?!<\/html>).)*<\/html\>

试试这个。看看演示。

http://regex101.com/r/lQ3zY6/2

答案 1 :(得分:-1)

让正则表达式变得懒惰:

<html\>([\s\S]*?)<\/html\>

在第一个html标签之前,应该采取一切措施。