我有以下代码从正确运行的XML中获取一个href标记网址:
Pattern p = Pattern.compile("<a[^>]+href\\s*=\\s*['\"]([^'\"]+)['\"][^>]*>");
Matcher m = p.matcher(xmlString);
while (m.find())
imagesURLs.add(m.group(1));
我有以下内容:
<a href="http://...">some text</a>
热门代码在<a href="http://...">
和m.group(0)
中http://...
获取m.group(1)
。
我还希望得到完整的<a href="http://...">some text</a>
。
如何通过修改正则表达式来实现这一目标?
答案 0 :(得分:1)
有关使用正则表达式解析html的所有免责声明:您可以使用此
(?is)(<a[^>]+href\s*=\s*(['"])([^'"]+)\2[^>]*>).*?</a>
<a href="http://...">some text</a>
<a href="http://...">
http://...
如你所知,要在Java中使用,你需要转义一些字符。类似的东西:
Pattern p = Pattern.compile("(?is)(<a[^>]+href\\s*=\\s*(['\"])([^'\"]+)\\2[^>]*>).*?</a>");