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

当前页面: 开发资料首页JSP 专题正则表达式的问题很急

正则表达式的问题很急

摘要: 正则表达式的问题很急


<?xml version="1.0" encoding="UTF-8"?>
<td class="f">

中国旅游网
外交部提醒中国公民赴越南胡志明市事先接种... 2006/10/12 [通知公告] 2006年“十一”黄金周旅游统计报告 2006/10/...中国驻德国大使馆提醒中国旅德公民国庆期间... 2006/10/02 [出行提示] 外交部提醒:黄金周公民出国旅游注意安全...
www.cnta.com/ 118K 2006-10-16 - 百度快照
www.cnta.com?上的更多结果


</td>

第一个链接提取出来既:http://www.cnta.com
第一个链接的链接的内容:中国旅游网
然后把里面的说明提取出来

外交部提醒中国公民赴越南胡志明市事先接种... 2006/10/12 [通知公告] 2006年“十一”黄金周旅游统计报告 2006/10/...中国驻德国大使馆提醒中国旅德公民国庆期间... 2006/10/02 [出行提示] 外交部提醒:黄金周公民出国旅游注意安全...

需要这三个数据
由其它的办法也可以的!


这个内容实际上是吧baidu的搜索内容提取出来了,所以正则表达是需要有一定的通用性!多谢了!





正则表达式主要是找规律,如将第一个链接提取出来可用:

String s="<?xml version="1.0" encoding="UTF-8"?>..."; //内容
String r="href=/"([^/"]+)";
Pattern p=Pattern.compile(r);
Matcher m=p.matcher(s);
m.find();
System.out.println(m.group(1));

后面的内容,可按相同的方法,但有些繁,要细细分析文本,关键是,要找不同(如果都是相同的内容,就不用取了)


楼主是在做小偷程序吗?


楼上的搞笑:)


<script>
//要搜索的字符串
var str="中国旅游网
外交部提醒中国公民赴越南胡志明市事先接种... 2006/10/12 [通知公告] 2006年“十一”黄金周旅游统计报告 2006/10/...中国驻德国大使馆提醒中国旅德公民国庆期间... 2006/10/02 [出行提示] 外交部提醒:黄金周公民出国旅游注意安全...
www.cnta.com/ 118K 2006-10-16 - 百度快照
www.cnta.com?上的更多结果
";
//正则表达式,匹配所有的超连接
var reg=/]+href/s*=/s*[/"/']?([^>/"/']*)[/"/']?[^>]+>(.*?)/g;
//提取超连接地址存入数组
var url=[];
//提取超连接名字存入数组
var name=[];
var i=0;
str.replace(reg,function($0,$1,$2){url[i]=$1;name[i]=$2;i++;});
alert(url);
alert(name);
</script>




lip009(深蓝忧郁) 兄,用java怎么写呀,我对正则表达式真的不太熟,非常感谢了!


嘿嘿,JAVA比较麻烦一些



能写个java的提取这个的咚咚吗
提这个

得到结果 "提这个"


JAVA版本:
//要搜索的字符串
String str="中国旅游网
外交部提醒中国公民赴越南胡志明市事先接种... 2006/10/12 [通知公告] 2006年“十一”黄金周旅游统计报告 2006/10/...中国驻德国大使馆提醒中国旅德公民国庆期间... 2006/10/02 [出行提示] 外交部提醒:黄金周公民出国旅游注意安全...
www.cnta.com/ 118K 2006-10-16 - 百度快照
www.cnta.com?上的更多结果
";
//搜索到url的存放集合
List url=new ArrayList();
//搜索到对应url的name的存放集合
List name=new ArrayList();
//正则表达式
Pattern p=Pattern.compile("]+href//s*=//s*[/"']?([^>/"']*)[/"']?[^>]+>(.*?)");
Matcher m=p.matcher(str);

int i=0;
while(true){
if(m.find()){
url.add(i,m.group(1));
name.add(i,m.group(2));
}else{
break;
}
i++;
}


上面的循环写的比较恶心,BS自己一下,多写了一步,简化一下:
int i=0;
while(m.find()){
url.add(i,m.group(1));
name.add(i,m.group(2));
i++;
}



OK了,问题解决,揭贴列!


好的,没问题!


↑返回目录
前一篇: 『100~200分急求』Tomcat 5.5 如何配置连接池?(MySQL5.0) 最好附必要的说明 在线等
后一篇: jsp数据插入问题~!~!快来人啊~!