Регулярное выражение для шаблонов в URI-кодах CodeIgniter - PullRequest
0 голосов
/ 10 ноября 2010

У меня есть еще один вопрос о переполнении стека, и мне было предложено использовать регулярные выражения вместо PHP-кода. К сожалению, я не знаю регулярных выражений, и много раз пытался в прошлом и сейчас понять это безуспешно. Так что, надеюсь, если я спрошу, кто-то здесь может помочь. Буду очень признателен.

Я пытаюсь добиться того, чтобы разные запросы URI направлялись в разные места, 4, если быть точным. Что будет правильным reg exp для соответствия следующему:

  • year (пример: 2010)
  • year-month (пример: 2010-nov) (месяц представлен тремя символами)
  • year-month-day (пример: 2010-nov-10)
  • year-month-day-string (пример: 2010-nov-10-blog-post-title-here)

Я пишу код на PHP и использую платформу CodeIgniter.

С уважением, Jason

Ответы [ 2 ]

3 голосов
/ 10 ноября 2010

Поскольку вы проверяете позже.Вы можете использовать действительно общий код:

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

4 цифры года, дефис, строчное слово из 3 символов, дефис, две цифры, как минимум одно слово (необязательный дефис и другойслово повторяется по мере необходимости.)

1 голос
/ 10 ноября 2010
  • Год (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\-]*

Исправьте меня, если я ошибаюсь, пожалуйста.Также обратите внимание, что не существует проверки для названий месяцев или дат, которые на самом деле не существуют.

...