有一段正则,可以识别img标记的src和style的值。正则表达式为:
(?is)<img[^>]*?(?:\bsrc)\s*=\s*(['""]?)(?<imgsrc>[^'""\s>]+)\1[^>]*\bstyle[\s]*=[\s]*(['""]?)(?<style>[^'""\s>]+)\2[^>]*>验证的文本为:
<img src=abcde.jpg style = width:800;height:600 >
可以捕获到src值为abcde.jpg
style值为 width:800;height:600
--------------------------------------
但是如果src和style调换一下顺序就没办法识别了
<img style = width:800;height:600 src=abcde.jpg >要怎样修改正则,才能够不管顺序,同时识别style和src的值呢?
(?is)<img[^>]*?(?:\bsrc)\s*=\s*(['""]?)(?<imgsrc>[^'""\s>]+)\1[^>]*\bstyle[\s]*=[\s]*(['""]?)(?<style>[^'""\s>]+)\2[^>]*>验证的文本为:
<img src=abcde.jpg style = width:800;height:600 >
可以捕获到src值为abcde.jpg
style值为 width:800;height:600
--------------------------------------
但是如果src和style调换一下顺序就没办法识别了
<img style = width:800;height:600 src=abcde.jpg >要怎样修改正则,才能够不管顺序,同时识别style和src的值呢?
解决方案 »
- 怎么遍历文件夹删除文件啊!!!!!!
- wcf 客户端 同时多次访问服务器一般会卡住,为什么?
- c# AddOwnedForm方法的使用
- InitializeComponent();的问题
- 关于md5的一个问题
- 关于response.redirect 问题
- *********************c# 设置为全屏时遇到的问题
- WPF DataTrigger的奇怪问题
- 在DataGrid中,如何知道我现在正在操纵的是父表还是子表的记录(在线等待)
- C# SuperTabControl设置tab text中文乱码,这个如何解决,App.config是utf-8
- XML
- ExecuteNonQuery() 将nvarchar类型值"BV00001"转换成int时 转换失败
参照http://topic.csdn.net/u/20090803/17/7bb3267c-321d-4d9b-aa34-d157a63e954d.html
修改成如下的正则表达式,可以不管前后顺序,同时识别出来style和src的值。
<img\b(?=(?:(?!\bstyle\s*=\s*).)*\bstyle\s*=\s*(['"\s]?)([^'">]+)\1)(?:(?!\bsrc\s*=\s*).)*\bsrc\s*=\s*(['"\s]?)([^'">]+)\3[^>]*>不过,不能给捕获组命名,否则就捕获不到了,不知何故。仔细想了一想,因为还存在只有src,没有style的情形,所以不在考虑同时捕获style和src值了,还是用分别捕获的方式吧。
1。 先匹配出img标签: (?i)<img[^>]*?>
2。 在1匹配的基础上分别匹配出你想要的
根据大婶的 修改版:(?is)<img(?=[^>]*?src\s*=(['"\s]?)(?<src>[^'"\s]+)\1)[^>]*?style\s*=(['"\s]?)(?<style>[^'"\s]+)\2[^>]*?>
说实话,看了半天,还是一知半解。姑且这样吧,回头再仔细研究吧。
谢谢大家!