站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题求一个关于超链接提取的正则表达式

求一个关于超链接提取的正则表达式

摘要: 求一个关于超链接提取的正则表达式


能够分别提取出 href=... 里面的链接和对应的 内容 中的文本内容部分(或者有可能是html代码),应该注意的是 href= 的后面有可能是单引号、双银行或空,如果是单引号或双引号,对应的,也应该是由单引号或双引号结束,如果是空,则应该是遇空格或>结束,举例如下:

文本
文本
文本
文本

关键是这几种情况的容错
还望高手点拨,谢了先。 :)



var value="kdsfj";
var reg=//;
if(reg.test(value)){
alert(RegExp.$2+"==="+RegExp.$3);
}else{
alert("nnnnnnn");
}
这是javascript里的正则,如果用到java里,/1好像要改成$1,我没在java里测,只在javascript里测试通过,
只要href=后没有空格等就可以了
“href= ”这种情况没有考虑,如果要考虑可以在href=后加上/s*,我没测试,自己测一下,估计如果不加引号分隔还有空格的话,如果url为空,那会把后面的属性取出来
url的要求是必须是以单词字符开头,如果楼主的需求里还可能有别的字符开头的,自己改一下就行了
为了简单清晰,这里没考虑换行的情况,如果需要考虑,请自己加上处理,很简单的哈哈


我试了一下没有成功那位朋友能够给一个现成的JAVA代码


真晕!!!
public static void main(String[] args) {
String str="kdsfj";
String pat=" Pattern pattern=Pattern.compile(pat);
Matcher matcher=pattern.matcher(str);
while(matcher.find()){
System.out.println(matcher.group(2)+"==="+matcher.group(3));
}
}


以上这段代码要放到一个类中
并且此类中要有
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import java.util.regex.*;

确保你的jdk是1.4以上的,确保你能正确编译运行java application程序,
然后编译运行包括此main方法的类,查看标准输出(一般就是控制台)的信息,
如果没改的话应该输出 afb.htm===kdsfj
如果要试别的,如"或空格等,请修改
String str="kdsfj";
的为你想要试的值,如果是试",请注意转义字符,用/"表示
然后重新编译,运行此类,

其它注意问题和上面写的一样


成功了,谢谢你了!
我对正则表达式不熟,你真是帮了大忙了!

import java.util.regex.*;
public class RegTest{
public static void main(String[] args){
String str="<body>首页
未页";
str=str+"

asfasfs

";
str=str+"第一页</body>";
//System.out.println (str);
String regstr="Pattern p = Pattern.compile(regstr);
Matcher m = p.matcher(str);
while(m.find()){
System.out.println(m.group(2)+"==="+m.group(3));
}

System.out.println("该次查找获得匹配组的数量为:"+m.groupCount());

}
}


哈哈,好说


↑返回目录
前一篇: 满分求 :下载去缓存的问题!
后一篇: 整合 IIS 和Tomcat有哪些好处?