html标签属性里面嵌套html标签,正则表达式如何处理这种?
阿萨德飞<span exp="阿萨德<span>a</span>" style="color: red;">
三个
</span>
<img src=""/>
<sss> 撒旦法</sss>
ps:
附上我写的正则:<((?!p|/p)S*?)[^>]*>.*?|<(?!p|/p).*? />
下图是正则工具匹配的结果,不尽人意。
<(\w+)[^<]*?(/>|>[\s\S]*?</\1>)
你好,这个结果还是不是特别满意,第一个span标签未能匹配到。不过这个答案也是很接近答案了。今天没时间,晚上我会再研究下大神给的答案的。thx
@尘世书童:
<(\w+)([^<]*?(<\1>[\s\S]*?</\1>)?[^<]*?)?((?<!\1)?>.*?</\1>|/>)
这个呢,里面嵌套的只能在组里面取
@Yu: ╮(╯▽╰)╭我用的是这两个在线检测工具匹配,没结果。
http://tool.oschina.net/regex/
http://tool.chinaz.com/regex/
@尘世书童:
@Yu: 你用的这个工具是哪个工具?可否发个链接。我再确认下,结贴,给分。
下图是我自己下的工具匹配结果,没达到你这个效果o(╯□╰)o
@尘世书童: http://www.ultrapico.com/Expresso.htm
@Yu: 是我自己脑子梗塞吗?第一个分组是这个效果。
@尘世书童: RegexOptions.Singleline
或
<(\w+)([^<]*?(<\1>[\s\S]*?</\1>)?[^<]*?)?((?<!\1)?>[\s\S]*?</\1>|/>)
@Yu: 厉害呢!
<span exp="阿萨德<span>a</span>" style="color: red;">
这种中间的尖括号不转义?这算哪门子html?
实际场景:
页面元素贴图:
这个也是自己在维护老系统的过程中碰到的问题,自己是用另一种方法(插入特殊标签,然后indexof这个标签位置,再截取字符串处理的)。只不过想尝试着用正则处理这个问题,让大侠见笑了O(∩_∩)O~
你可能需要这个 https://github.com/Ivony/Jumony 博客园大神写的哦
谢谢你的分享