大家好! 使用 PHP如何提取字符串中的   “中文”,“英文字符(大小写都提取)”,“_”,“-”,“——”。因为特殊字符太多了,所以只能提取合法字符,帮忙看看! 多谢

解决方案 »

  1.   

    忘记说了,空格可要保留啊! 别把空格 去掉了!  例如:“tt 测试 @ @ /test/测试car/demand/j2ee " '“  buy j2ee buy_car 李傲”  过滤后的结果应该是:“tt 测试 test 测试cardemandj2ee   buy_car 李傲”
      

  2.   

    preg_replace("/[^\w\s\x{4e00}-\x{9fa5}]/",'' ,$string);
      

  3.   

    只要半角?那么还要中文字符干嘛?中文就没有半角的/***************下面都是我抄的******************/
    Unicode编码中的汉字范围(我不确定啦)
    /^[\u2E80-\u9FFF]+$/
    /*****************下面是unicode字符值**********************/
    /[\u0000-\u00FF]/   半角符号   /[\u4E00-\u9FA5]/   汉字   
    /[\uFF00-\uFFFF]/   全角符号 
    /×××××××××××××常用字符集匹配××××××××××××××××××××××××/
        $re['utf-8']   = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
        $re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";
        $re['gbk']    = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
        $re['big5']   = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";你再看看这个:http://topic.csdn.net/t/20020918/13/1033544.html
      

  4.   

    sorry,是英文取半角的,中文原样提取。
      

  5.   

    首先你要确定编码范围unicode汉字常用的上面都提到了
    但是全角的符号范围就太大了,unicode现在用到的符号光分类就有几十种(甚至有麻将牌哦),更别说细致到字符范围的分布