Добрый день, уважаемые форумчане. Прошу помочь с регулярным выражением. Необходимо из [keyword=145], где может быть значением вместо 145 любое число, извлечь это число в переменную, а после заменить это выражение на другую переменную.
Код (PHP): <?php $text = '[keyword=145]'; $pattern = '/\d+\b/'; preg_match($pattern, $text, $match); var_dump($match);
и что? какая разница, взять это $matches[0] или $matches[1] ? во вторых, ваша регулярка делает лишнюю работу на каждом шаге поиска: первый шаблон [^=]+ срабатывает на каждом символе(пока не дойдет до =), и получается на каждом, ВСЕГДА идет вторая проверка на соотвествие второму подшаблону (?=\]), второй уже несоответствует, идет откат назад, и берется следующий символ... т.е. двойная(лишняя) проверка до тех пор пока не дойдет до символа '=' в моей же - максимально быстро, сначала просто ищется символ '=', и вторая проверка на число - выполняется ТОЛЬКО когда будет найдено это '=', а когда ненайдено то просто переход к следующему симовлу, без доп. проверок