PHP:如何将正则表达式转换为示例匹配?

时间:2010-02-07 09:07:26

标签: php regex

我有一个匹配URI的正则表达式。例如,

preg_match("/^my\/uri\//i", "my/uri/whatever");

我用于路由,例如“http://www.mywebsite.com/my/uri/page.html”将匹配上述内容(当然已删除协议/主机)。

有没有办法将正则表达式计算成最匹配的常规URI?例如,

“我/ URI /”

2 个答案:

答案 0 :(得分:1)

我不明白你真正想要的是什么。

此代码可能是您所需要的:

$general_uri = 'my/uri/';
$regex = '/^' . preg_quote($general_uri) . '/i';

如果您想要反向上述代码:

$regex = '/^my\/uri\//i';
$general_uri = str_replace('\\', '', preg_replace('/^\/\^(.*)\/i?$/', '$1', $regex));

但是上面的代码不适用于复杂的正则表达式。

答案 1 :(得分:0)

也许如果你能说出引导你进入这个死胡同的原始问题,那么有人可以对这种情况做出改变。

我已经做了一个路由算法,我只是在'/'上使用和爆炸它非常好用,像MagentoZend Framework这样做,注册路径控制器或路由器和链接它们。

也许你的原始问题可以解决而无需用PHP编写正则表达式引擎。