html 标签内的正则表达式匹配(不是捕获,只是匹配)

Regex match inside html tag (not capture, just match)

这是字符串:<sup>test</sup>
我使用的正则表达式:(\([\w+\-*\/]+?\)|(?!<)\w+(?<!>))

为什么它匹配所有 suptestsup
我想我已经使用了 < 的负前瞻和 > 的负后视,所以我认为它不会捕获 sup,因为它之前有 '<',之后有 '>'

我想要的只是匹配'test',不匹配整个东西并捕获'test'

请帮忙

您需要匹配<.+?>内容之间的内容

<sup>test</sup>

正则表达式:<.+?>(.+?)

根据您想要查看的精确程度,您必须调整搜索模式,但这取决于您自己的逻辑

假设内容在 >< 之间你可以简单地使用这个正则表达式:(?<=>)[^<]+

Demo

说明

[^<]+<

之外的任何字符

(?<=>) 前面有一个 >

Note

If you don't want to match new line or carriage return, use this one (?<=>)[^<\r\n]+ instead. Here is a demo.

保持简单 ;)