<? $str = "ABC<asdf>我需要的字符串,123";

echo $str . "<br>"; preg_match("/<asdf>(.+),/",$str,$song); echo $song[1];?>会了,朋友来接分啊

解决方案 »

  1.   

    那如果字符串是这样呢:
    $str = "ABC<asdf>我<asdf>需,要,的,123字符串,123";
    嘿嘿
      

  2.   

    用substr和strpos结合也可以完成.$str ="wh0kat#h5355#string,ok,121212";$estr=substr($str,strpos($str,"#h5355#")+strlen("#h5355#"),strpos($str,',')-(strpos($str,"#h5355#")+strlen("#h5355#")));echo $estr; //string
      

  3.   

    <a href=\"" + url + "/music02/B258/40.wma\">有问题了,想提取这个/music02/B258/40.wma空格,加号,和反斜线不会处理
      

  4.   

    $str = ' + url + "/music02/B258/40.wma\">';

    echo $str . "<br>"; preg_match("/\/music(.+)wma/",$str,$song); echo $song[0];有办法了
      

  5.   

    $estr=substr($str,strpos($str,"#h5355#")+strlen("#h5355#"),strpos($str,',')-(strpos($str,"#h5355#")+strlen("#h5355#"))); 这种程序可读性太差正则表达式匹配的时候,必须清楚一点,就是默认的是贪婪匹配,就是说尽可能多的匹配
    所以/\/music(.+)wma/能匹配/music02/B258/40.wma,但是如果后面还有wma的话就不对了
    比如:
    <a href="/music02/B258/40.wma">This is a song link: /40.wma</a>
    匹配的结果就是 $song[0] = "/music02/B258/40.wma">This is a song link: /40.wma"
    加个问号才是非贪婪模式:(.+?) ,匹配的时候尽量严格,不要都用.可以用用\d \w \s以及其他的。