2015-02-24 153 views
1

我的工作搜索引擎優化的事情在項目相匹配的URL可能的最好的網址,所以 我試圖用preg_match()功能從URL模式匹配請求URLPHP的preg_match()的正則表達式

誰能請幫助我建立正則表達式的所有URL僅匹配特定的網址,我在正則表達式的新手,請參閱我的東西

以下網址,

1)http://domain.com/pressrelease
2)http://domain.com/pressrelease/
3)http://domain.com/pressrelease/index/1
4)http://domain.com/pressrelease/index/1/1/1
5)http://domain.com/pressrelease/inde2x/
6)http://domain.com/pressrelease/inde2x/2

我想匹配1,2,3網址,其他3無效

我創建該規則表達但它不起作用

(\/pressrelease\/)+((?!index).)*$ 
+1

你能解釋爲什麼4)5)6)無效嗎?規則是什麼? – 2015-02-24 11:03:00

+0

我想匹配最好的網址,所以拿最好的網址來說不重要。 – Girish 2015-02-24 11:07:28

回答

1

此正則表達式可能會爲你工作:

(/pressrelease)(/index/\d+)?/?$ 

RegEx Demo

+1

謝謝,它的工作正常,非常分類的解決方案 – Girish 2015-02-24 11:15:12

+0

不客氣,很高興它解決了。 – anubhava 2015-02-24 11:17:15

+0

很抱歉地說出來,但是這會變成:http://domain.com/pressrelease/index/1151523 – Djip 2015-02-24 12:01:17

2

我真的沒有看到所有您的要求。

(@^HTTP [S]:?????// [^ /] /[^ /](/(索引/ [^ /]))$ @)

這將解決您的1,2,3而不是4,5,6

https://regex101.com/r/fQ0hZ8/2

+0

無需匹配域和主機,無論如何工作正常 – Girish 2015-02-24 11:16:06

1

這是100%的工作:

/(\/pressrelease)(\/)?((index))?(\/1)?$/m 

https://regex101.com/r/kD9uD9/1

這裏是不是一個欺騙它的方式

+0

小修改'/(/ pressrelease)(/)?((索引))?(/ \ d +)?$/m'其他然後罰款 – Girish 2015-02-24 11:17:42

+0

只是從你的工作網址,你沒有說你預期會被改變但仍然有效。 – Djip 2015-02-24 13:37:43