sw586 发表于 2012-4-21 23:43:13

求表达式匹配2个汉字

源文本:<p>区域##中国|地址##阿大使大赛阿萨德</p>


求助:使用正则表达式配合出“区域##”后面的2个汉字 限定只有2个汉字。 哪个正则高手指点下应该怎么写,教程看了还是没有找到方法。跪求

qqtoqq 发表于 2012-4-24 20:39:41

<?php
$str='<p>区域##中国|地址##阿大使大赛阿萨德</p> ';
$zz='/<p>区域\#\#(?<content>[\s\S]{4})/is';
preg_match($zz,$str,$arr);
if(isset($arr['content']))echo '结果:'.$arr['content'].'<br>';
else echo '结果:没有匹配<br>';


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

用在火车头的正则表达式:<p>区域\#\#(?<content>[\s\S]{4})汉字是双字节的,一个汉字2字节,[\s\S]{4}代表匹配4个字节,路过后面都是汉字,这样就是2个汉字了

sw586 发表于 2012-4-24 20:43:46

qqtoqq 发表于 2012-4-24 20:39 static/image/common/back.gif
上面是我用php做的测试,路过区域后面都是中文的应该没有问题。

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

高手,帮了我大忙!谢谢了

156598 发表于 2013-12-31 22:07:25

<p>区域\#\#(?<content>[\s\S]{4})
用在火车头第二步,测试不成功的

156598 发表于 2014-1-2 09:20:34

用在插件中,为何不成功呢,        if ( preg_match("委托,([\w\W]{4,25})对其", $body, $regs)) 不知错在哪里?匹配不到,

156598 发表于 2014-1-2 09:39:53

function bodyfirstimg($body) {
                $body = strtolower($body);
                if ( preg_match("#委托,(?<content>[\w\W]{4,25})对其#", $body, $regs))
                { //使用正则获代理机构名称不成功
                        return $regs ;
                }
                else
                {
                        return '' ;
                }
   
                        }
        $LabelArray['测试代理'] = bodyfirstimg($LabelArray['内容']);
       
       
    preg_match("#委托,(?<content>[\w\W]{4,25})对其#is",$body,$str);       
       
        $LabelArray['测试代理2'] = $str;


二种方法,测试代理,和测试代理2都得不到,如何从当前网页中匹配到呢

156598 发表于 2014-1-2 11:16:33

自己解决了,加油!
页: [1]
查看完整版本: 求表达式匹配2个汉字