正则表达式.只获取标签的文本内容(没有内部标签)

and*_*990 6 html javascript regex

我有html代码的字符串.

<h2 class="some-class"> 
   <a href="#link" class="link" id="first-link"
      <span class="bold">link</span>
   </a>
   NEED TO GET THIS
</h2>
Run Code Online (Sandbox Code Playgroud)

我只需要获得h2的文本内容.我创建这个正则表达式:

(?<=>)(.*)(?=<\/h2>)
Run Code Online (Sandbox Code Playgroud)

但是如果h2没有内部标签,它会很有用.否则我得到这个:

   <a href="#link" class="link" id="first-link"
      <span class="bold">link</span>
   </a>
   NEED TO GET THIS
Run Code Online (Sandbox Code Playgroud)

Moh*_*Mad 1

Rgex 不适合解析 HTML,但如果您的 html 无效或您喜欢使用正则表达式的任何方式:

(?!>)([^><]+)(?=<\/h2>)
Run Code Online (Sandbox Code Playgroud)

尝试演示

  • 它正在获取关闭标签之前的最后一条文本</h2> 它正在获取(IF EXISTS)

  • 避免null结果改变*改为+.

  • 这个正则表达式是完全有限的,适合问题提到的有限情况