0

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

我想要实现的是将不同的 URI 请求路由到不同的地方,具体来说是 4 个。匹配以下内容的正确正则表达式是什么:

  • 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 框架。

问候,杰森

4

2 回答 2

3

由于您稍后进行验证。你可以很通用:

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

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

于 2010-11-10T14:29:51.657 回答
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\-]*

如果我错了,请纠正我。另请注意,对于实际上不存在的月份名称或日期没有验证。

于 2010-11-10T14:20:29.890 回答