正则表达式不匹配某字符串?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式不匹配某字符串?相关的知识,希望对你有一定的参考价值。
<img id="a1" src="Images\未命名.jpg"/>
<img src="Images\未命名.jpg" id="a1"/>
<img id=“img1” src="Images\未命名.jpg"/>
<img src="Images\未命名.jpg"/>
<img src="Images\未命名.jpg" id="a1" name="a001"/>
这要<img/>这个标签有id=“a1”都不匹配,不要写死,可能img里面有很多属性但id=“a1”属性可以出现在任意位置。求一正则解答:以上5个img只匹配:
<img id=“img1” src="Images\未命名.jpg"/> 和 <img src="Images\未命名.jpg"/>
其他都不匹配!
直接找不含exp字符的单词正则是实现不了的.
不过可以取巧,找到含exp字符单词,然后把这些单词替换成空字符串,然后再在替换好的字符串里面找单词
找含exp的单词的正则
(?=[A-Za-z]*exp[A-Za-z]*)[A-Za-z]*
匹配替换后的字符串的字符的正则
[A-Za-z]*
如图
js 的话如下可以测试:
<html><head>
<!--
将此内容保存为 html 文件,浏览器允许运行脚本进行测试。
-->
<script type="text/javascript">
function check()
var str, str2, str3;
var re;
re = /(<img(?!.*id="a1").*\\/>)/g;
str = document.getElementById("txtInput").value;
str3 = "";
while ((str2 = re.exec(str)) != null)
str3 = str3 + "\\n" + str2[0];
if (str3.length > 0)
alert("提取到:" + str3);
else
alert("没有提取到内容。");
</script>
</head>
<body>
输入:<br>
<textarea id="txtInput" cols ="50" rows = "10">
<img id="a1" src="Images\\未命名.jpg"/>
<img src="Images\\未命名.jpg" id="a1"/>
<img id=“img1” src="Images\\未命名.jpg"/>
<img src="Images\\未命名.jpg"/>
<img src="Images\\未命名.jpg" id="a1" name="a001"/>
</textarea>
<br>
<button type="button" onclick="check()">正则检查</button>
</form>
</body>
</html>本回答被提问者采纳 参考技术B 说的太混乱了,你的具体要求明确一下追问
意思就是只要 里面有属性是id=“a1”的都不匹配
那么上面的5个img只有:
和
这2个符合我的要求。因为一个id不等于a1,一个没有id属性
(?i)]*?id=(['""]?)[^'""]*?a1[^'""]*?\1)[^>]*?>
正则表达式,不包含某特殊符号
参考文章如下 :
下文是正则规则讲解:
正则表达式样例收集:
以上是关于正则表达式不匹配某字符串?的主要内容,如果未能解决你的问题,请参考以下文章