【问题标题】:How do i get sub string using PHP code如何使用 PHP 代码获取子字符串
【发布时间】:2013-12-02 17:51:55
【问题描述】:
./gallery/Chrysler/ch3.JPG

我怎样才能得到“克莱斯勒”???

我试过了

$str =   "./gallery/Chrysler/ch3.JPG";

$matches = array();
$preg_match('/\[(.?)\]/',$str, $matches);

请帮帮我

谢谢,

【问题讨论】:

  • 为什么需要正则表达式?

标签: php regex arrays function preg-match


【解决方案1】:

这样做。在 PHP 中使用explode()

$str = "./gallery/Chrysler/ch3.JPG";
$str=explode("/",$str);
echo $str[2]; // "prints" Chrysler

【讨论】:

    【解决方案2】:

    如果字符串格式没有改变,那么可以使用explode()

    echo explode("/", $str)[2]; // => Chrysler
    

    如果格式发生变化,可以使用正则表达式:

    $str =   "./gallery/Chrysler/ch3.JPG";
    
    $matches = array();
    if(preg_match('#\./\w+/(\w+)/\w+\.\w+#',$str, $matches)) {
        echo $matches[1];
    }
    

    输出:

    Chrysler
    

    【讨论】:

      【解决方案3】:

      Shankar Damodaran 的答案是正确的。

      概括地说,他也可以使用

      $str = "./gallery/Chrysler/ch3.JPG";
      $str = explode("/", $str);
      echo $str[count($str) - 2]; // "prints" Chrysler
      

      这也适用于不同的用例,例如:

      $str = "/home/me/gallery/Chrysler/ch3.JPG";
      

      如果他想打印字符串中的最后一个目录,而不是第二个目录(问题中不清楚......)。

      【讨论】:

        【解决方案4】:

        可能有合适的工具?

        $result = basename(dirname($str));
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-08-21
          • 1970-01-01
          • 1970-01-01
          • 2015-08-21
          • 1970-01-01
          • 1970-01-01
          • 2021-02-17
          • 2017-12-20
          相关资源
          最近更新 更多