以最后一个标点符号或者空格为届删除后面的内容,正则怎么写?

解决方案 »

  1.   

    基本形式
    echo preg_replace('/(.+[ ]).+$/', '$1', 'a b c d'); //a b c 
      

  2.   

    全角也包括那就复杂了……看来只能用unicode范围,我还是旁观一下看谁有好想法
      

  3.   

    echo preg_replace('/(.+[这里列举你要指定的符号])[^和前面列举的一样]+$/', '$1', 'a b c d');注意:
    1.红色和蓝色部分要做消歧义,两个要保持相同
    2.不要漏掉了蓝色部分前面的^,用来排除的
    3.预计GBK编码还是会有问题,utf-8的话添加/u修正符可以达到预期