我有一个要求检查字符串是否以<i开头并且紧随其后不是mg,并且应该以>结尾

我已经尝试了以下正则表达式,但是没有用。

<[iI][^(mg|MG)][^>]*>



<i>:应匹配并返回true
<ind value="abc">:应匹配并返回true
<img/src=x onerror=alert("stack..!")>:不应该匹配并返回false


请一些帮助我,在此先感谢。

最佳答案

您可以将此正则表达式与否定的超前使用:

(?i)<i(?!mg)[^>]*>


RegEx Demo

RegEx说明:


(?i):忽略大小写的修饰符
<i:匹配文字<i
(?!mg):负向超前断言我们在下一个位置没有mg
[^>]*:匹配0个或多个非>字符
>:匹配文字>

09-12 18:59