strtolower(PHP 3, PHP 4) strtolower - переводит символы строки в нижний регистр. Описаниеstring strtolower (string str) Возвращает string со всеми алфавитными символами, конвертированными в нижний регистр. Заметьте, что 'алфавитность' определяется текущей locale (локальными настройками). Это означает, что, при "C" locale по умолчанию, такие символы как umlaut-A не будут конвертироваться.
См. также strtoupper(), ucfirst() и ucwords(). |
||||||||||
|
||||||||||
Рассмотрим проблему совпадения строки в скобках, когда допускается неограниченное
вложение скобок. Без использования рекурсии лучшее, что можно сделать, это использовать
патэрн, который совпадает на некоторую фиксированную глубину вложения. Невозможно
обработать вложения на произвольно большую глубину. В Perl 5.6 имеется экспериментальная
возможность, позволяющая (помимо прочего) выполнять рекурсию регулярных выражений.
Специальный элемент (?R) предоставлен для этого специфического case/варианта
рекурсии.
PCRE-патэрн разрешает проблему скобок (предполагая, что опция PCRE_EXTENDED
установлена так, что пробел игнорируется):
\( ( (?>[^()]+) | (?R) )* \)
Вначале он совпадает с открывающей скобкой. Затем - с любым количеством подстрок,
которые могут быть либо последовательностями не-скобок, либо рекурсивным совпадением
самого патэрна (т.е. корректно заключённой в скобки подстрокой). Наконец, идёт
закрывающая скобка.
Этот особый пример патэрна содержит вложенное бесконечное повторение, и, таким
образом, использование однократного субпатэрна для совпадения со строками из
не-скобок очень важно, когда патэрн применяется к строкам, которые не
совпадают. Например, если его применить к
(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()
то он быстро даст "нет совпадений". Однако, если однократный/once-only
субпатэрн не используется, поиск совпадения будет продолжаться длительное время,
так как есть много различных способов, которыми повторения + и * могут кроить
строку-субъект, и все они должны быть проверены, прежде чем будет выдано сообщение
о неудаче поиска.
| |