免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1710 | 回复: 5
打印 上一主题 下一主题

请教一个正则问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-10 18:01 |只看该作者 |倒序浏览
$str = '<a href="">xxxxxx.com.cn</a> <b>bold font</b> <p>paragraph text</p>';
preg_match_all('/(?<=<(\w+)>).*(?=<\/\1>)/', $str, $match);

print_r($match)的时候报错

提示:Warning: preg_match_all() [function.preg-match-all]: Compilation failed: lookbehind assertion is not fixed length at offset 11 in E:\codebase\phpplot\preg\preg_html.php on line 13

请问怎么修改才能匹配出两个标签之间的内容

谢谢

评分

参与人数 1可用积分 +5 收起 理由
bs + 5 自我分析,精神可嘉

查看全部评分

论坛徽章:
0
2 [报告]
发表于 2009-08-10 18:17 |只看该作者
刚才试验了下
将(\w+)替换为定长的表达式就可以了
是不是PHP对于零度负向断言不支持

论坛徽章:
0
3 [报告]
发表于 2009-08-10 23:15 |只看该作者
现在很怀疑PHP的preg对于尖括号<的处理有问题,试了很久下面的这个表达式就是不能匹配出结果,不知道是为什么

        $match = '';
        $str = 'go to find the mistery str in <asd1234asdfba>';
        preg_match_all ( '/<[\w\d]+>/', $str, $match );
        print_r ( $match );

论坛徽章:
80
20周年集字徽章-庆
日期:2020-10-28 14:09:1215-16赛季CBA联赛之北京
日期:2020-10-28 13:32:5315-16赛季CBA联赛之北控
日期:2020-10-28 13:32:4815-16赛季CBA联赛之天津
日期:2020-10-28 13:13:35黑曼巴
日期:2020-10-28 12:29:1520周年集字徽章-周	
日期:2020-10-31 15:10:0720周年集字徽章-20	
日期:2020-10-31 15:10:07ChinaUnix元老
日期:2015-09-29 11:56:3020周年集字徽章-年
日期:2020-10-28 14:14:56
4 [报告]
发表于 2009-08-11 08:39 |只看该作者

论坛徽章:
0
5 [报告]
发表于 2009-08-11 10:59 |只看该作者
崩溃了
        $output = '<s>test.javascript;</s>';
       
        $js = '';
        preg_match_all('/<s.*?<\/s>/', $output, $js);
        print_r($js);

这个可以返回匹配到的字符
Array ( [0] => Array ( [0] => test.javascript; ) )

下面这样就匹配不到了
        $output = '<script>test.javascript;</script>';
       
        $js = '';
        preg_match_all('/<script.*?<\/script>/', $output, $js);
        print_r($js);


- - 终于发现了,打印到页面上看不到匹配结果
Array ( [0] => Array ( [0] => [1] => [2] => [3] => [4] => ) )
其实是有的
-_-

[ 本帖最后由 cocowool 于 2009-8-11 11:02 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2009-08-11 19:34 |只看该作者
最后分享一下,学会了"查找页面中相对路径并且替换为绝对路径“的方法

$form_html = preg_replace ( '/(?<=\ssrc=\"(?!http(.*?)(?=\"\s)/e', 'add_url(\$url, \'\\1\')', $form_html );

&nbsp;function add_url($url, $match){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return $url . $match;
&nbsp;}


感觉很强大,哈哈哈~~~

[ 本帖最后由 cocowool 于 2009-8-11 19:35 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP