求一正则表达式
功能:提取各大搜索引擎的关键字
例如分别在baidu,google,sohu,sina,yahoo搜索“公司”关键字
http://www.google.com/search?sourceid=navclient&ie=UTF-8&rls=DVXA,DVXA:2004-42,DVXA:en&q=%E5%85%AC%E5%8F%B8
http://www.baidu.com/s?wd=%B9%AB%CB%BE&cl=3
http://search.sohu.com/web?query=%B9%AB%CB%BE
http://search.sina.com.cn/cgi-bin/search/search.cgi?_andor=and&title=&iask_value=&key=&_searchkey=%B9%AB%CB%BE&_ss=sina&_search=+%CB%D1+%CB%F7+&from=sinas
http://cn.websearch.yahoo.com/search/web_cn?stype=&p=%B9%AB%CB%BE&scch=on&ei=gb
在这些字符串中提取到关键字“%B9%AB%CB%BE”
谢谢!
问题点数:100、回复次数:3Top
1 楼xuzuning(唠叨)回复于 2005-02-21 11:04:04 得分 100
问题描述不清楚Top
2 楼drzy123(111)回复于 2005-02-21 11:11:30 得分 0
简单的说给一个字符串http://www.baidu.com/s?wd=%B9%AB%CB%BE&cl=3用正则得到
"%B9%AB%CB%BE"这个串。
但是这个正则要适用于多个搜索引擎比如baidu的是wd=%B9%AB%CB%BE
sohu的是query=%B9%AB%CB%BE,等等Top
3 楼xuzuning(唠叨)回复于 2005-02-21 11:59:13 得分 0
所以你并不是要得到特定的“=%B9%AB%CB%BE”而是要得到做为查询字的串。对于
http://www.google.com/search?sourceid=navclient&ie=UTF-8&rls=DVXA,DVXA:2004-42,DVXA:en&q=%E5%85%AC%E5%8F%B8,你要得到“%E5%85%AC%E5%8F%B8”,是这样的吧?
<?php
$t = <<< TEXT
http://www.google.com/search?sourceid=navclient&ie=UTF-8&rls=DVXA,DVXA:2004-42,DVXA:en&q=%E5%85%AC%E5%8F%B8
http://www.baidu.com/s?wd=%B9%AB%CB%BE&cl=3
http://search.sohu.com/web?query=%B9%AB%CB%BE
http://search.sina.com.cn/cgi-bin/search/search.cgi?_andor=and&title=&iask_value=&key=&_searchkey=%B9%AB%CB%BE&_ss=sina&_search=+%CB%D1+%CB%F7+&from=sinas
http://cn.websearch.yahoo.com/search/web_cn?stype=&p=%B9%AB%CB%BE&scch=on&ei=gb
TEXT;
preg_match_all("#http://([^/]+).*\b(q|wd|query|_searchkey|p)=(.+?)(?:&|$)#im",$t,$r);
print_r($r);
?>
Top




