Php 从正则表达式获取值

Php 从正则表达式获取值,php,regex,codeigniter,Php,Regex,Codeigniter,我有一个正则表达式: company/(.*)-f(\d+).html$ company/view/$2 在公司类的视图方法中,我使用$this->uri->segment(3)获取$2的值;我不明白为什么不能像变量一样得到$2的值 public function view($param) { echo $param; // no value returned $this->uri->segment(3) // works fine } 您可以获取控制器中的所有URL段: $

我有一个正则表达式:

company/(.*)-f(\d+).html$ company/view/$2
在公司类的视图方法中,我使用
$this->uri->segment(3)
获取
$2
的值;我不明白为什么不能像变量一样得到$2的值

public function view($param)
{
 echo $param; // no value returned
 $this->uri->segment(3) // works fine
}

您可以获取控制器中的所有URL段:

$segments = $this->uri->segment_array(); print_r($segments); $segments=$this->uri->segments_array(); 打印(段);
请注意,返回的数组将以索引1而不是0开头。您看不出这与正则表达式有什么关系吗?您概述的方法运行良好(controller/view/foo->controller/view($param)将输出foo。您正在尝试设置路由吗?您能清楚地描述您的问题吗?请提供您选择正则表达式作为问题解决方案的详细背景信息,也许我们可以提出更好的解决方案。可能有一个重写规则从类似company/abc-f123123.html的url重写/company/view/123123,但如果这一点得到了澄清,并提供了一个准确的测试用例。