html的写法不严格,现有:
String htmlStr = null;
htmlStr = "<a asdf href=\"www.abc.com.cn/a/b.jsp?name=value\" asfd >连接</a>";
htmlStr = "<a asdf href = \"www.abc.com.cn/a/b.jsp?name=value\" asfd >连接</a>";
htmlStr = "<a asdf href='www.abc.com.cn/a/b.jsp?name=value' asfd >连接</a>";
htmlStr = "<a asdf href = 'www.abc.com.cn/a/b.jsp?name=value' asfd >连接</a>";
htmlStr = "<a asdf href=www.abc.com.cn/a/b.jsp?name=value asfd >连接</a>";
htmlStr = "<a asdf href = www.abc.com.cn/a/b.jsp?name=value asfd >连接</a>";如何写出一个针对上面几种href学法的正则表达式获取href的值?谢谢!
String htmlStr = null;
htmlStr = "<a asdf href=\"www.abc.com.cn/a/b.jsp?name=value\" asfd >连接</a>";
htmlStr = "<a asdf href = \"www.abc.com.cn/a/b.jsp?name=value\" asfd >连接</a>";
htmlStr = "<a asdf href='www.abc.com.cn/a/b.jsp?name=value' asfd >连接</a>";
htmlStr = "<a asdf href = 'www.abc.com.cn/a/b.jsp?name=value' asfd >连接</a>";
htmlStr = "<a asdf href=www.abc.com.cn/a/b.jsp?name=value asfd >连接</a>";
htmlStr = "<a asdf href = www.abc.com.cn/a/b.jsp?name=value asfd >连接</a>";如何写出一个针对上面几种href学法的正则表达式获取href的值?谢谢!
这里输入href进行搜索,
htmlStr = "<a asdf href = \"www.abc.com.cn/a/b.jsp?name=value\" asfd >连接</a>";
htmlStr = "<a asdf href='www.abc.com.cn/a/b.jsp?name=value' asfd >连接</a>";
htmlStr = "<a asdf href = 'www.abc.com.cn/a/b.jsp?name=value' asfd >连接</a>";
可以用:
regExp2 = "(<a\\s+([^>h]|h(?!ref\b))*href[\\s+]?=[\\s+]?('|\"))([^(\\s+|'|\")]*)([^>]*>)";
得到:www.abc.com.cn/a/b.jsp?name=value那么:htmlStr = "<a asdf href=www.abc.com.cn/a/b.jsp?name=value asfd >连接</a>";与
htmlStr = "<a asdf href = www.abc.com.cn/a/b.jsp?name=value asfd >连接</a>";如何用正则表达式得到:www.abc.com.cn/a/b.jsp?name=value
//www.abc.com.cn/a/b.jsp?name=value
String htmlStr = null;
htmlStr = "<a asdf href=\"www.abc.com.cn/a/b.jsp?name=value\" asfd >连接</a>";
// htmlStr = "<a asdf href = \"www.abc.com.cn/a/b.jsp?name=value\" asfd >连接</a>";
// htmlStr = "<a asdf href='www.abc.com.cn/a/b.jsp?name=value' asfd >连接</a>";
// htmlStr = "<a asdf href = 'www.abc.com.cn/a/b.jsp?name=value' asfd >连接</a>";
// htmlStr = "<a asdf href=www.abc.com.cn/a/b.jsp?name=value asfd >连接</a>";
// htmlStr = "<a asdf href = www.abc.com.cn/a/b.jsp?name=value asfd >连接</a>";
String rex = "=.*=[\\w|\'|\"]*";
Pattern p = Pattern.compile(rex);
Matcher m = p.matcher(htmlStr);
if (m.find())
System.out.println(m.group());
}有两点还没解决,
1、每一个多一个等号
2、等号后面如果是空格没法去掉,我加\\s好像不起作用.
这样可以去掉等号,不知道是否可以满足要求
htmlStr = "<a asdf href=\"www.abc.com.cn/a/b.jsp?name=value\" asfd >连接</a>";
htmlStr = "<a asdf href = \"www.abc.com.cn/a/b.jsp?name=value\" asfd >连接</a>";
htmlStr = "<a asdf href='www.abc.com.cn/a/b.jsp?name=value' asfd >连接</a>";
htmlStr = "<a asdf href = 'www.abc.com.cn/a/b.jsp?name=value' asfd >连接</a>";
htmlStr = "<a asdf href=www.abc.com.cn/a/b.jsp?name=value asfd >连接</a>";
htmlStr = "<a asdf href = www.abc.com.cn/a/b.jsp?name=value asfd >连接</a>";这几种情况(可能还有,因为html格式不严格),中的href对应的URL取出作替换,所以想通过
正则表达式作替换。楼上的写法,我测试一下,解决了给分,不够重新开帖。谢先了!