Регулярное выражение для строк запроса $ _GET - PullRequest
0 голосов
/ 16 апреля 2010

Я пытаюсь найти регулярное выражение для $_GET строк запроса.

У меня есть такой массив:

private $_regexp = array(
    ':id'    => '[0-9]+',
    ':year'  => '[12][0-9]{3}',
    ':month' => '0[1-9]|1[012]',
    ':day'   => '0[1-9]|[12][0-9]|3[01]',
    ':slug'  => '[a-zA-Z0-9-]+',
    ':query' => '...'
);

и я зацикливаю их, чтобы увидеть, есть ли у меня соответствующий шаблон, как этот:

if ( array_key_exists($matches[0], $this->_regexp) )
    {
        return '^('.$this->_regexp[$matches[0]].')$';
    }

Все остальные регулярные выражения идут броском, но я пробовал множество различных регулярных выражений, чтобы найти:

?anything=anything

не может понять это, погуглил как х ... л, но ничего не может найти. Я пробовал, например, что-то вроде этого:

(\?)(.*)(=)(.*)

но без результата ...

Здесь есть гуру регулярных выражений?

/ Тобиас

Ответы [ 2 ]

1 голос
/ 16 апреля 2010

Хотя я не совсем понимаю вопрос, ваше регулярное выражение будет

\?([^=]+)=([^&]*)
\?         # a literal question mark
(          # group 1
  [^=]+    # anything but a "=", 1-unlimited chars
)          # end group 1
=          # the "="
(          # group 2
  [^&]*    # anything but a "&", 0-unlimited chars
)          # end group 2

Можете ли вы объяснить, что вы на самом деле пытаетесь сделать?

0 голосов
/ 16 апреля 2010

Как насчет: -

(\?)([^=]+)(=)(.+)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...