Регулярные выражения в PHP и русские буквы

По-умолчанию в PHP функции для работы с регулярными выражениями некорректно работают кириллицей и с русскими буквами в частности. Обычно такое поведение заключается в выборке не всех сиволов из поисковой маски.

  • preg_filter
  • preg_grep
  • preg_​match_all
  • preg_​match
  • preg_​replacecallback​array
  • preg_​replace_callback
  • preg_​replace
  • preg_​split

Для работы с ними нужно использовать модификатор /u поисковой маски, который указывает на поиск unicode.

'/[а-яёА-ЯЁ]+/u'

u (PCRE_UTF8)
Этот модификатор включает дополнительную функциональность PCRE, которая не совместима с Perl: шаблон и целевая строка обрабатываются как UTF-8 строки. Модификатор u доступен в PHP 4.1.0 и выше для Unix-платформ, и в PHP 4.2.3 и выше для Windows платформ. Валидность UTF-8 в шаблоне и целевой строке проверяется начиная с PHP 4.3.5. Недопустимая целевая строка приводит к тому, что функции preg_* ничего не находят, а неправильный шаблон приводит к ошибке уровня E_WARNING. Пятый и шестой октеты UTF-8 последовательности рассматриваются недопустимыми с PHP 5.3.4 (согласно PCRE 7.3 2007-08-28); ранее они считались допустимыми.

Модификаторы шаблонов Perl-​совместимых регулярных выражений (PCRE)

Похожие записи

Отладка PHP в Visual Studio Code и OpenServer

Visual Studio Code - отличный бесплатный редактор кода, который в определенных ситуациях, заменяет IDE. В частности VS Code можно использовать как альтернативу PHPStorm. По умолчанию, VS Code предоставляет статический анализатор кода. В этом посте показана настройка отладчика PHP для Visual Studio Code в среде с набором инструментов разработчика OpenServer.

Об автозагрузке в PHP

Статья раскрывает аспекты автозагрузки в PHP с использованием __autoload, spl_autoload_register, автозагрузки через composer (PSR-4) с небольшим экскурсом в историю.

01 декабря 2017 г. в PHP

phpDocumentor на Ubuntu

Запись об установке и использовании phpDocumentor — системе документирования исходных текстов на PHP.