CodeIgniter URI中模式的正则表达式

时间:2010-11-10 14:11:45

标签: php regex codeigniter codeigniter-url

我在Stack Overflow上有另一个问题,并建议使用正则表达式而不是PHP代码。不幸的是,我不知道正则表达式,并且过去已经多次尝试过,现在却没有成功地理解它。所以希望,如果我问得好,这里有人可以提供帮助。我将非常感激。

我想要实现的是将不同的URI请求路由到不同的地方,4具体。什么是适当的reg exp以匹配以下内容:

  • year (例如:2010
  • year-month (例如:2010-nov)(由3个字符代表的月份)
  • year-month-day (例如:2010-nov-10
  • year-month-day-string (例如:2010-nov-10-blog-post-title-here

我在PHP中编码并使用CodeIgniter框架。

此致 杰森

2 个答案:

答案 0 :(得分:3)

因为您稍后会进行验证。你可以真正通用:

([0-9]{4})-([a-z]{3})-([0-9]{1,2})-([\w*](-?[\w*])*)

4位数年份,连字符,3字母小写字母,连字符,两位数字,至少一个单词,(可选连字符和根据需要重复的其他单词。)

答案 1 :(得分:1)

  • 年份为(19|20)\d\d

  • 年月为(19|20)\d\d\-[a-z]{3}

  • 年月日为(19|20)\d\d\-[a-z]{3}\-[1-3][0-9]

  • 年 - 月 - 日字符串为(19|20)\d\d\-[a-z]{3}\-[1-3][0-9]\-[a-z\-]*

如果我错了,请纠正我。另请注意,没有确认不存在的月份名称或日期。