0

a.column我想替换字符串,例如column.

我试过:

str_replace("/([a-z]\.)*(.+)/i", '$2', 'a.column')

但它不会起作用。

4

5 回答 5

3

这也可以在没有正则表达式的情况下完成:

function split($table) 
{
   $array = explode(".", $table);
   $return = "";
   if (count($array) > 1)
   {
     for ($i=1; $i<count($array); $i++)
     {
       $return .= $array[$i].".";
     }
     $return = substr_replace($return, "", -1);
   }  else 
   {
      $return = $array[1];
   }
   return $return;
}
于 2013-07-26T11:36:14.033 回答
3

str_replace()不允许正则表达式。您将其与以下内容混淆preg_replace()

echo preg_replace("/([a-z]\.)*(.+)/i", '$2', 'a.column');
于 2013-07-26T11:34:12.387 回答
2

如果这就是所有字符串:

$str = substr($str,strrpos($str,'.'));

否则(在较大的字符串中适用于“db.a.column”和“a.column”):

$str = preg_replace('#(?:[^\. ]+\.)+([^\. ]+)#','$1',$str);
于 2013-07-26T11:37:46.940 回答
0

尝试这个:

  echo preg_replace("#([^.]\.)?([^.]+)#", '$2', 'a.column');
于 2013-07-26T11:35:23.337 回答
0
$str  = 'a.column dfsdfsdfsdf';
echo preg_replace("/[a-z]\.(.+)/i", '$1', $str);
于 2013-07-26T11:37:39.303 回答