日期:2014-05-20 浏览次数:20771 次
String str = "<a href=\"http://www.abc.com\">12</a><a href=http://www.abc.com>123</a><a href=\"http://www.abc.com\" target=''>12</a>"; Pattern p = Pattern.compile("href=[\\\"]?(.*?)[\\\"]?[\\s>]"); Matcher m = p.matcher(str); while (m.find()) { System.out.println(m.group(1)); }
------解决方案--------------------
你举个例子,光是href的话1楼的方法可以~
------解决方案--------------------
[a-zA-z]+://[^\s]*
------解决方案--------------------
import java.util.regex.Matcher; import java.util.regex.Pattern; public class Absf { public static void main(String[] args) { String str = "<a HREF=\"http://www.aasd.com\">12</a><a href=http://www.abc.com>123</a> <a href=\"http://www.woadfw.com\" target=''>12</a>"; String pattern ="<\\s*a\\s*href\\s*=\\s*[\"]?([^\"|^<]*)[\"]?>?[\\s>]"; System.out.println(pattern); Pattern p = Pattern.compile(pattern, Pattern.CASE_INSENSITIVE); //有可能href是大写 Matcher m = p.matcher(str); while (m.find()) { System.out.println(m.group(1)); } } }
------解决方案--------------------
Pattern p = Pattern.compile("href=[\"]?(.*?)[\"]?[\\s>]" ,Pattern.CASE_INSENSITIVE|Pattern.DOTALL); Matcher m = p.matcher(html); while (m.find()) { System.out.println(m.group(1)); }
------解决方案--------------------
\\ 是转意字符 代表反斜线符"\" 的意思
------解决方案--------------------