preg_replace_callback(PHP 4 >= 4.0.5) preg_replace_callback - выполняет поиск и замену регулярного выражения с использованием callback/обратного вызова. Описаниеmixed preg_replace_callback (mixed pattern, mixed callback, mixed subject [, int limit]) Поведение этой функции почти идентично preg_replace(), но вместо параметра replacement необходимо специфицировать callback, который вызовет и передаст массив совпавших элементов в строке-субъекте. callback должен возвращать строку замещения. Эта функция была введена в PHP 4.0.5. См. также preg_replace(). |
||||||||||
|
||||||||||
Эти отличия даны относительно Perl 5.005.
По умолчанию пробельным символом считается любой таковой символ, распознаваемый функцией isspace() библиотеки С, хотя возможна компиляция PCRE с альтернативной таблицей типов символов. Нормально isspace() распознаёт space, formfeed, newline, carriage return, horizontal tab и vertical tab. Perl 5 больше не включает vertical tab в набор пробельных символов. Мнемоника \v, которая долгое время была в документации Perl, фактически никогда не распознавалась. Однако сам по себе этот символ рассматривался как пробельный как минимум до версии 5.002. В 5.004 и 5.005 он не соответствует \s.
PCRE не разрешает повторение квантификаторов или опережающих утверждений/lookahead assertions. Perl разрешает их, но они имеют другое значение. Например, (?!a){3} не утверждает, что три последующие символа не "a". Оно просто утверждает три раза, что следующий символ не "a".
Захваты субпатэрнов, которые возникают внутри отрицательного опережающего утверждения, вычисляются, но их вхождения в векторе смещения никогда не устанавливаются. Perl устанавливает свои числовые переменные из любого такого патэрна, который совпадает до неудачи утверждения при совпадении с чем-либо (продолжая таким образом), но только если негативное опережающее утверждение содержит одну ветвь.
Хотя двоичные нулевые символы поддерживаются в строке-субъекте, они не допускаются в строке патэрна, поскольку он передаётся как нормальная C-строка, оканчивающаяся нулём. Замена "\\x00" может использоваться в патэрне для представления бинарного нуля.
| |