在PHP中,用正则表达式 匹配内容匹配这些内容,怎么写?急急急!!!!!!

如何用php正则表达式取出“&td ...&字符&/td&”间的字符? - 知乎4被浏览1552分享邀请回答01 条评论分享收藏感谢收起$a ='
&td width="5%"&序号&input type="checkbox" title="全选/全不选" name="searchresult_all_cb" id="searchresult_all_cb" onclick="chooseall(this);"/&&/td&
&td width="33%"&题名&/td&
&td width="19%"&责任者&/td&
&td width="13%"&出版者&/td&
&td width="7%"&出版年&/td&
&!--td class="tbr"&I247.57/5790&/td--&
&td width="5%"&3&/td&
&td width="5%"&2&/td&
&td width="6%"&相关资源&/td&
$result = preg_match_all('#&td.+?&(.+?)&/td&#', $a, $arr);
var_dump($arr[1]);
02 条评论分享收藏感谢收起问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
有一个$link="url",打开后代码如下:
&div class="news_list"&
&span&&/span&
&a href="/news!show.action?id=fe04ec3a5e6ccedca29e061"&羊山新区2016年14条道路绿化工程招标公告&/a&
&span&&/span&
&a href="/news!show.action?id=ad4b04b3db5a"&平桥区明港镇井庄路口-垃圾处理场-何岗村南路口(K0+000-K4+300)公路改建工程施工招标公告&/a&
&span&&/span&
&a href="/news!show.action?id=c3b688ae2ec54fbf7a4f5f0"&信阳市中心医院羊山分院人防工程监理招标公告&/a&
&span&&/span&
&a href="/news!show.action?id=2ab3aa766dd53f2b00ad"&信阳市儿童医院病房楼建设项目施工及监理项目招标公告&/a&
&!--分页--&
&div class="page_num"&
目标:获得&div class="news_list"&......&div class="page_num"&中href标签里的内容"/news!show.action?id=2ab3aa766dd53f2b00ad"
我写的代码如下:
//获取链接中的内容
$htmlContent=file_get_contents("$link");
//获取链接
$num=preg_match_all("/&div.*?class=\"news_list\"&.*?(href=\".*?\").*&div.*class=\"page_num\"&/is",$htmlContent,$array);
//打印数组
var_dump($array[1]);
目前卡顿的地方:在
//获取链接
处,子表达式只能获取一个结果,而且不是想要的href标签中的内容。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
环视应该可以满足你现在的需求
preg_match_all('/(?&=&span&\d{4}-\d{2}-\d{2}&\/span&)(?:.*?href=\")(.*?)(?:\".*?)(?=&\/li&)/is', $a, $matches);
array(2) {
array(4) {
string(152) "
&a href="/news!show.action?id=fe04ec3a5e6ccedca29e061"&羊山新区2016年14条道路绿化工程招标公告&/a&
string(218) "
&a href="/news!show.action?id=ad4b04b3db5a"&平桥区明港镇井庄路口-垃圾处理场-何岗村南路口(K0+000-K4+300)公路改建工程施工招标公告&/a&
string(161) "
&a href="/news!show.action?id=c3b688ae2ec54fbf7a4f5f0"&信阳市中心医院羊山分院人防工程监理招标公告&/a&
string(173) "
&a href="/news!show.action?id=2ab3aa766dd53f2b00ad"&信阳市儿童医院病房楼建设项目施工及监理项目招标公告&/a&
array(4) {
string(53) "/news!show.action?id=fe04ec3a5e6ccedca29e061"
string(53) "/news!show.action?id=ad4b04b3db5a"
string(53) "/news!show.action?id=c3b688ae2ec54fbf7a4f5f0"
string(53) "/news!show.action?id=2ab3aa766dd53f2b00ad"
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
原因:只有一个match的结果当然子表达式也只有一个结果.
$num = preg_match_all("/.*?(href=\".*?\").*?/is", $htmlContent, $array);
有四个match结果就有4个匹配了..
同步到新浪微博
分享到微博?
你好!看起来你挺喜欢这个内容,但是你还没有注册帐号。 当你创建了帐号,我们能准确地追踪你关注的问题,在有新答案或内容的时候收到网页和邮件通知。还能直接向作者咨询更多细节。如果上面的内容有帮助,记得点赞 (????)? 表示感谢。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:php用正则表达式匹配URL的简单方法
字体:[ ] 类型:转载 时间:
使用正则表达式匹配URL的简单方法,提供测试代码
在PHP的官网上看到的parse_url()函数的替代方案。结果和parse_url()函数差不多,是使用正则实现的。URI 是 Web上可用的每种资源 - HTML文档、图像、视频片段、程序等 - 由一个通用资源标志符(Uniform Resource Identifier, 简称"URI")进行定位。 对象分组: 代码如下:^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?12&&&&&&&&&&& 3& 4&&&&&&& 测试代码如下: 代码如下:&?php$search = '~^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?~i';$url = 'http://www.jb51.net/pub/ietf/uri/#Gonn';$url = trim($url);preg_match_all($search, $url ,$rr);printf("&p&输出URL数据为:&/p&&pre&%s&/pre&\n",var_export( $rr ,TRUE));
/*各分组如下&&&&& $1 = http:&&&&& $2 = http&&&&& $3 = //www.nowamagic.net&&&&& $4 = www.nowamagic.net&&&&& $5 = /pub/ietf/uri/&&&&& $6 = &undefined&&&&&& $7 = &undefined&&&&&& $8 = #Gonn&&&&& $9 = Gonn*/?&上面的正则表达式可以获取URL中的任何一部分,下面的代码则简单一些: 代码如下:&?php // 从 URL 中取得主机名 preg_match("/^(http:\/\/)?([^\/]+)/i", "http://www.jb51.net/index.html", $matches); $host = $matches[2]; // 从主机名中取得后面两段 preg_match("/[^\.\/]+\.[^\.\/]+$/", $host, $matches); echo "domain name is: {$matches[0]}\n"; ?&
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具

我要回帖

更多关于 正则表达式匹配中文 的文章

 

随机推荐