用这个表达式
Regex reg = new Regex(@"<div((.(?![ ]id))*)>");
其目的是想查找所有HIML源中所有不含有属性id的div,
例如对以下内容尝试匹配:
<div id=”divtest”></div>
<div id=”divtest”></div>
<div asdflkid=”divtest”></div>
结果应该是返回以下1个匹配
<div asdflkid=”divtest”></div>
但却返回了以下2个匹配
<div id=”divtest”></div>
<div asdflkid=”divtest”></div>
观察原因是因为div与id间只有一个空格,如果多于一个空格才会被匹配到,这是什么原因呢?
如何修改以上表达式才能正确返回1个匹配?我尝试了一些方法不行,所以请大家在本机测试通过后才回复答案,谢谢!
Regex reg = new Regex(@"<div((.(?![ ]id))*)>");
其目的是想查找所有HIML源中所有不含有属性id的div,
例如对以下内容尝试匹配:
<div id=”divtest”></div>
<div id=”divtest”></div>
<div asdflkid=”divtest”></div>
结果应该是返回以下1个匹配
<div asdflkid=”divtest”></div>
但却返回了以下2个匹配
<div id=”divtest”></div>
<div asdflkid=”divtest”></div>
观察原因是因为div与id间只有一个空格,如果多于一个空格才会被匹配到,这是什么原因呢?
如何修改以上表达式才能正确返回1个匹配?我尝试了一些方法不行,所以请大家在本机测试通过后才回复答案,谢谢!
这样会被误匹配出来,所以min_jie是否可以再修正一下?
只要div中包含id即可,不一定要跟在div后的,只要是包含的都不要搜索出
<div ttt="asdf" aid=”divtest”></div>
o ..改改~~Regex regex = new Regex(@"^<div.+\w+(?=id).*</div>\s*$");
<div((?!\bid\s*=).)*>