举个栗子

马辰龙De技术分享
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

匹配html input img标签中的value name位置不固定

Posted on 2016-07-09 14:26  ChenlongMa  阅读(756)  评论(0编辑  收藏  举报
需要匹配文本如下:
要求alt标签不为hello,不能与src中后面的图片名相同,不能为汉字
<img src="en/images/main_page/cover.jpg" alt="hello" />  
<img src="en/images/main_page/cover.jpg" alt="cover" />  
<img src="en/images/main_page/cover.jpg" alt="我是汉字" /> 
<img src="en/images/main_page/cover.jpg" alt="yingwen" /> 
<img alt="yingwen" src="en/images/main_page/cover.jpg"  /> 
<img src="images/en_adu_1_6_1_submenu_07out.gif" alt="Material2" name="Material2" width="130"  height="18" border="0" id="Materia12" onmouseover="MM_swapImage ('Material2','','images/en_adu_1_6_1_submenu_07in.gif',1)" onmouseout="MM_swapImgRestore()" />
<img src="images/spacer.gif" width="1" height="55" alt="hello" />
<img title="動畫所見是牙冠的縱切面。蛀壞部分從琺瑯質開始,一直蔓延至象牙質,形成明顯的蛀牙洞"  alt="動畫所見是牙冠的縱切面。蛀壞部分從琺瑯質開始,一直蔓延至象牙質,形成明顯的蛀牙洞"  src="02_inside/teens_OD_3DAni_07a.gif">
有三种方法:
前两种用法为常用的,后一种不经常使用,但是非常简洁
<img[^>]+(?<=alt=")(?!hello|\2)([a-zA-Z]+)[^>]*src=["']?([^"']+\/(\w+).(?:jpg|gif|png))"|<img[^>]+(?<=src=["']?)([^"']+\/(\w+).(?:jpg|gif|png))"[^>]*alt="(?!hello|\5)[a-zA-Z]+[^>]*>
 
 
<img\b(?=[^>]*src="(?:[^"]*/)?([^"\.]*)\.[^"]*")(?=[^>]*alt="(?!hello")(?!\1)[^"]+")[^>]*/>
 
(?=.*?/([a-zA-Z0-9_]+)\.(?:jpg|gif|png))<img[^>]+?alt="(?!\1|hello")[a-zA-Z0-9._]+"[^>]*>
 
下面为常用去除input 标签中的value,name值,位置不固定,是上面方法的扩展
<input\b(?=[^>]*value=\s*["']?([^"]*))(?=[^>]*name=\s*["']?([^"]*))[^>]*>
 
(?=.*?value=\s*["']?([^"]*))<input[^>]+name=["']?([^"]+)"[^>]*>