trevoga_su
@trevoga_su

Что значит регулярное выражение «//u»?

print_r(preg_split("//u", 'Привет', -1, PREG_SPLIT_NO_EMPTY));

дает результат
Array ( [0] => П [1] => р [2] => и [3] => в [4] => е [5] => т )


Как данное регулярное выражение можно логически "обосновать"/описать? Т.е. просто понять, почему оно так работает?
  • Вопрос задан
  • 1207 просмотров
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
Регулярные выражения - конечный автомат, проверяемый к позиции в строке, смещающий позицию (на конец совпавшего фрагмента или на следующий символ, если совпадения не было) и вновь проверяющий на совпадение. И так до конца строки.
Выражение // ничего не проверяет и потому совпадает в каждой позиции строки.
preg_split делит строку по местам совпадения регулярки. Поскольку совпадения в каждой позиции - то так и делит посимвольно.

Если уберёте PREG_SPLIT_NO_EMPTY, то увидите так же совпадения в позиции ^ и $
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
SagePtr
@SagePtr
Еда - это святое
По символам юникода разбивает
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы