想要从锚标记获取href链接。我正在使用
regex = @"<a[^>]*?href\s*=3D\s*[""']? ([^'"" >]+?)[ '""][^>]*?>".
如果href在单行中,我可以成功,但在以下
中失败Text = <a target=3D"_blank" hr=
ef=3D"http://abc.com/blog/check-your-cars-health-before-going-on-lo=
ng-trip/">
正在阅读的文件是eml文件而不是html文件 请为上面的
建议正确的正则表达式答案 0 :(得分:2)
您不应该真正尝试使用正则表达式解析HTML,this本质上就是原因。您可以查看强大的HTML处理库,例如HTML Agility Pack。
This之前的SO帖子可能会有一些与你正在做的事情有关的事情。
答案 1 :(得分:0)
这个正则表达式将:
<a\b(?=\s)(?=(?:[^>=]|='[^']*'|="[^"]*"|=[^'"][^\s>]*)*?\shr=.*?ef=3D['"]([^"]*)['"]?)(?:[^>=]|='[^']*'|="[^"]*"|=[^'"\s]*)*"\s?\/?>.*?<\/a>
示例文字
注意onmouseover
中的difficutl边缘情况 <a onmouseover=' href="NotTheHrefYoureLookingFor" ; funRotator(href) ; ' target=3D"_blank" href="http://abc.com/blog/check-your-cars-health-before-going-on-lo=
ng-trip/">link text
</a>
捕获论坛
[0] => <a onmouseover=' href=" hr=
ef=3D NotTheHrefYoureLookingFor" ; funRotator(href) ; ' target=3D"_blank" hr=
ef=3D"http://abc.com/blog/check-your-cars-health-before-going-on-lo=
ng-trip/">link text
</a>
[1] => http://abc.com/blog/check-your-cars-health-before-going-on-lo=
ng-trip/