当前页面: 开发资料首页 → 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*[/"/']?([^>/"/']*)[/"/']?[^>]+>(.*?)/a>/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*[/"']?([^>/"']*)[/"']?[^>]+>(.*?)//a>");
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了,问题解决,揭贴列!
好的,没问题!