我有一个匹配URI的正则表达式。例如,PHP:如何将正则表达式转换为示例匹配?
preg_match("/^my\/uri\//i", "my/uri/whatever");
我使用路由,用于exmample“http://www.mywebsite.com/my/uri/page.html”将匹配上述(与协议/主机当然移除)。
有什么方法可以将正则表达式评估为最匹配的最一般的URI吗?例如,
“我/ URI /”
我有一个匹配URI的正则表达式。例如,PHP:如何将正则表达式转换为示例匹配?
preg_match("/^my\/uri\//i", "my/uri/whatever");
我使用路由,用于exmample“http://www.mywebsite.com/my/uri/page.html”将匹配上述(与协议/主机当然移除)。
有什么方法可以将正则表达式评估为最匹配的最一般的URI吗?例如,
“我/ URI /”
我不明白你真正想要什么。
此代码可能是你需要的东西:
$general_uri = 'my/uri/';
$regex = '/^' . preg_quote($general_uri) . '/i';
如果你想在上面的代码的反向:
$regex = '/^my\/uri\//i';
$general_uri = str_replace('\\', '', preg_replace('/^\/\^(.*)\/i?$/', '$1', $regex));
但是上面的代码将无法在复杂的正则表达式工作。
我猜这将用于简单的正则表达式。谢谢 – Petah 2010-02-09 09:36:29
也许你可以告诉大家,带领您进入这个死胡同有人可以给一份局势扭转原来的问题。
我为自己做了一个路由算法,我只是在'/'上使用和爆炸,它运行得非常好,像Magento或Zend Framework这样做,注册路径控制器或路由器并链接它们。
也许您的原始问题可以解决,而无需使用PHP编写正则表达式引擎。
你只是想让你当前的正则表达式匹配''my/uri''和''my/uri/*“'吗? – 2010-02-07 09:14:36
多么有趣的问题。处理像'/\w\b.+\b\s/'这样的东西(一个解决方案:'a')会相当困难。 – 2010-02-07 09:17:45
我想反编译最正式的正则表达式 – Petah 2010-02-07 09:35:20