php取出这句话(I like cats,but you don't.)里的每个单词(不包含逗号句号,但输出时带逗号句号,例:<span>I</span><span>like</span><span>cats</span>,<span>you</span><span>don't</span>.),求助大佬,这个怎么做?
用了正则之后出现如下诡异的情况

解决方案 »

  1.   

    $s = "I like cats,but you don't.";
    $s = preg_replace("/[\w']+/", '<span>$0</span>', $s);
    echo $s;
    <span>I</span> <span>like</span> <span>cats</span>,<span>but</span> <span>you</span> <span>don't</span>.
      

  2.   

    算看看span个数和$str的字母个数.
    []的作用是什么?
    多个字母怎么成为一组?
    先去看PHP 手册->函数参考->文本处理->pcre模式->子组(子模式),最好是 pcre模式 整个都看完
      

  3.   

    $str="I'd like dog,if is hot.";
    $preg="/([a-zA-Z']+)/";
    $str2=preg_replace_callback($preg,
    function($match){
    return "<span>".$match[1]."</span>";
    },$str);
    echo $str."\n".$str2;这样也可以.