2014-08-28 3 views
1

Я получил это регулярное выражение ниже, она отлично работает на строку, которая выглядит как этотсоответствует регулярному выражению с тиром

hello/hi 

но терпит неудачу, если есть дефис (-), как этот hello/hi-there

if (preg_match('%^(\w+)(/(\w+))?$%', $pathInfo, $matches)) 
{ 
    echo 'works'; 
} 

также, я хотел бы, чтобы соответствовать

  1. привет или
  2. Хель ло/привет-там ИЛИ
  3. привет/привет-там/улыбка

любая идея, как это исправить? Благодаря

ответ

3

Вы можете просто включить - и пространство в регулярном выражении:

'%^([\w -]+)(/([\w -]+))?$%' 
+0

Спасибо, это сработало, но только что обновил вопрос – user2636556

+0

нормально ответ обновляется, а также. – anubhava

+1

Я сомневаюсь, что это действительно имеет значение, но я просто переместил '-' на любой конец для безопасности :) –

Смежные вопросы