任何人都可以帮助我将其变成正常的表达吗?
<a onclick="NavigateChat();" style="cursor:pointer;"><img src="images/online-chat.jpg" width="350" height="150" border="0" alt="Title Loans Novato - Online Chat"/></a>
alt标签会改变,图像也会改变,但是
<a onclick="NavigateChat();" style="cursor:pointer;">
将始终启动字符串,和
</a>
将永远结束它..我怎样才能使用正则表达式找到它?
答案 0 :(得分:1)
我不太确定你要返回什么,所以这个通用的正则表达式将会:
<a(?=\s|>)(?=(?:[^>=|&)]*|='[^']*'|="[^"]*"|=[^'"][^\s>]*)*?\sonclick="NavigateChat\(\);")(?=(?:[^>=|&)]*|='[^']*'|="[^"]*"|=[^'"][^\s>]*)*?\sstyle="cursor:pointer;")(?:[^>=|&)]|='(?:[^']|\\')*'|="(?:[^"]|\\")*"|=[^'"][^\s>]*)*>\s*(<img\s.*?)\s*<\/a>
示例文字
<a onmouseover=' a=1; onclick="NavigateChat();" style="cursor:pointer;" href="www.NotYourURL.com" ; if (3 <a && href="www.NotYourURL.com" && id="revSAR" && 6 > 3) { funRotate(href) ; } ; ' href='http://InterestedURL.com' id='revSAR'><img src="YouShouldn'tFindMe.nope"></a>
<a onclick="NavigateChat();" style="cursor:pointer;"><img src="images/online-chat.jpg" width="350" height="150" border="0" alt="Title Loans Novato - Online Chat"/></a>
<强>匹配强>
组0获取整个匹配的锚标记
第1组获取内部文本
[0][0] = <a onclick="NavigateChat();" style="cursor:pointer;"><img src="images/online-chat.jpg" width="350" height="150" border="0" alt="Title Loans Novato - Online Chat"/></a>
[0][1] = <img src="images/online-chat.jpg" width="350" height="150" border="0" alt="Title Loans Novato - Online Chat"/>
答案 1 :(得分:0)
您是否需要提取/捕获某些信息或只找到整个字符串? 我通常用于推广regexp的方法是从文字文本开始,只用一般占位符替换元素......
<a onclick="NavigateChat\(\);" style="cursor:pointer;"><img src="[^"]+" width="\d+" height="\d+" border="\d+" alt="[^"]+"/></a>
此表达式使用字符集[^"]
代表“非引号”。如果您只使用.*
作为通配符,那么如果文档中存在多个标记,则正则表达式将失败。正则表达式是“贪婪的”,并会尝试从第一个标签到最后一个链接的末尾选择所有文本。
如果没有数据样本,我无法对此进行测试,但应该关闭。