我有一個匹配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