标签: php regex pcre
这是字符串:<sup>test</sup> 我使用的正则表达式是:(\([\w+\-*\/]+?\)|(?!<)\w+(?<!>))
<sup>test</sup>
(\([\w+\-*\/]+?\)|(?!<)\w+(?<!>))
为什么它匹配所有sup,test和sup? 我想我已经使用过&lt;的负面预测了。和&gt;的负面观察,所以我认为它不会因为它之前没有捕获,因此有&#39;&lt;&#;;之后会有&#39;&gt;&#39;
sup
test
我想要的只是匹配&#39;测试&#39;,不匹配整个事物并捕获&#39;测试&#39; 。
请帮忙
答案 0 :(得分:0)
您需要匹配&lt;。+?&gt;之间的内容含量
正则表达式:&lt;。+?&gt;(。+?)&lt; /.+?&gt;
取决于你想看的精确程度,你必须调整搜索模式,但这取决于你自己的逻辑
答案 1 :(得分:0)
假设内容介于>和<之间您只需使用此正则表达式:(?<=>)[^<]+
>
<
(?<=>)[^<]+
Demo
<强>解释强>
[^<]+除<
[^<]+
(?<=>)先于>
(?<=>)
注意强> 如果您不想匹配换行或回车,请改用此(?<=>)[^<\r\n]+。 Here是一个演示。
注意强>
如果您不想匹配换行或回车,请改用此(?<=>)[^<\r\n]+。 Here是一个演示。
(?<=>)[^<\r\n]+
保持简单;)