php preg_match()正则表达式

时间:2015-02-24 11:00:27

标签: php regex .htaccess

我正在研究项目中的搜索引擎优化事项以匹配可能的网址中的最佳网址,所以 我正在尝试使用url pattern

中的preg_match()函数匹配请求网址

任何人都可以帮我创建正则表达式,只匹配所有网址中的特定网址,我是正则表达式的新手,请看我的东西

关注 6 网址,

  

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).)*$

4 个答案:

答案 0 :(得分:2)

我真的没有看到你要求的所有要点。

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

这将解决你的1,2,3而不是4,5,6

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

答案 1 :(得分:1)

这个正则表达式可能适合你:

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

RegEx Demo

答案 2 :(得分:1)

这是100%正常工作:

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

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

这不是欺骗它的方法

答案 3 :(得分:0)

如果你想捕获整个字符串

(http:\/\/.*pressrelease(()|(\/)|(\/index)|(\/index\/[^\/]*)))$

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