火车采集器软件交流官方论坛

 找回密码
 加入会员
搜索
火车采集器V9版免费下载火车浏览器 - 可视采集,万能群发,全自动脚本工具
查看: 2426|回复: 6

求表达式匹配2个汉字

[复制链接]
发表于 2012-4-21 23:43:13 | 显示全部楼层 |阅读模式
源文本:<p>区域##中国|地址##阿大使大赛阿萨德</p>


求助:使用正则表达式配合出“区域##”后面的2个汉字 限定只有2个汉字。 哪个正则高手指点下应该怎么写,教程看了还是没有找到方法。跪求
发表于 2012-4-24 20:39:41 | 显示全部楼层
  1. <?php
  2. $str='<p>区域##中国|地址##阿大使大赛阿萨德</p> ';
  3. $zz='/<p>区域\#\#(?<content>[\s\S]{4})/is';
  4. preg_match($zz,$str,$arr);
  5. if(isset($arr['content']))echo '结果:'.$arr['content'].'<br>';
  6. else echo '结果:没有匹配<br>';


  7. ?>
复制代码
上面是我用php做的测试,路过区域后面都是中文的应该没有问题。

用在火车头的正则表达式:
  1. <p>区域\#\#(?<content>[\s\S]{4})
复制代码
汉字是双字节的,一个汉字2字节,[\s\S]{4}代表匹配4个字节,路过后面都是汉字,这样就是2个汉字了
 楼主| 发表于 2012-4-24 20:43:46 | 显示全部楼层
qqtoqq 发表于 2012-4-24 20:39
上面是我用php做的测试,路过区域后面都是中文的应该没有问题。

用在火车头的正则表达式:汉字是双字节的 ...

高手,帮了我大忙!谢谢了
发表于 2013-12-31 22:07:25 | 显示全部楼层
<p>区域\#\#(?<content>[\s\S]{4})
用在火车头第二步,测试不成功的
发表于 2014-1-2 09:20:34 | 显示全部楼层
用在插件中,为何不成功呢,        if ( preg_match("委托,([\w\W]{4,25})对其", $body, $regs)) 不知错在哪里?匹配不到,
发表于 2014-1-2 09:39:53 | 显示全部楼层
function bodyfirstimg($body) {
                $body = strtolower($body);
                if ( preg_match("#委托,(?<content>[\w\W]{4,25})对其#", $body, $regs))
                { //使用正则获代理机构名称不成功
                        return $regs[1] ;
                }
                else
                {
                        return '' ;
                }
   
                          }
        $LabelArray['测试代理'] = bodyfirstimg($LabelArray['内容']);
       
       
    preg_match("#委托,(?<content>[\w\W]{4,25})对其#is",$body,$str);       
       
        $LabelArray['测试代理2'] = $str[1];


二种方法,测试代理,和测试代理2都得不到,如何从当前网页中匹配到呢
发表于 2014-1-2 11:16:33 | 显示全部楼层
自己解决了,加油!
您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

QQ|手机版|Archiver|火车采集器官方站 ( 皖ICP备06000549 )

GMT+8, 2024-11-25 11:54

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表