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

Регулярные выражения в PHP. Кириллица

Дата публикации: 2016-07-21

регулярные выражения русские буквы php. Смотреть фото регулярные выражения русские буквы php. Смотреть картинку регулярные выражения русские буквы php. Картинка про регулярные выражения русские буквы php. Фото регулярные выражения русские буквы php

От автора: приветствую вас, друзья. В этой статье мы с вами узнаем некоторую специфику работы регулярных выражений с кириллицей вообще и конкретно в PHP. Приступим?

До этого, в предыдущих статьях мы с вами использовали в качестве текста исключительно латинницу, кириллицы мы избегали. Теперь давайте попробуем найти все кириллические буквы в строке. В качестве «испытуемого» мы используем фразу, которая может быть знакома кому-то со школьной скамьи: «Иван Родил Девчонку, Велел Тащить Пелёнку». Эта фраза призвана была помочь запомнить падежи в русском языке, поскольку первая буква каждого слова совпадает с тем или иным падежом.

Итак, как мы помним из предыдущих уроков, есть метасимвол \w, совпадающий с буквами, цифрами и символом подчеркивания. Однако в данном случае он не подойдет, поскольку совпадает он только с латинницей, не с кириллицей.

регулярные выражения русские буквы php. Смотреть фото регулярные выражения русские буквы php. Смотреть картинку регулярные выражения русские буквы php. Картинка про регулярные выражения русские буквы php. Фото регулярные выражения русские буквы php

Как видим, этот шаблон действительно не подходит. Для поиска кириллицы мы должны использовать символьный класс — [], в котором укажем диапазон кириллических букв от а до я.

регулярные выражения русские буквы php. Смотреть фото регулярные выражения русские буквы php. Смотреть картинку регулярные выражения русские буквы php. Картинка про регулярные выражения русские буквы php. Фото регулярные выражения русские буквы php

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

регулярные выражения русские буквы php. Смотреть фото регулярные выражения русские буквы php. Смотреть картинку регулярные выражения русские буквы php. Картинка про регулярные выражения русские буквы php. Фото регулярные выражения русские буквы php

Этот шаблон регулярного выражения уже лучше. Но все еще есть нюансы — не найдена буква ё. Эта буква в регулярных выражениях не входит в диапазон а-я и ее нужно указывать отдельно.

регулярные выражения русские буквы php. Смотреть фото регулярные выражения русские буквы php. Смотреть картинку регулярные выражения русские буквы php. Картинка про регулярные выражения русские буквы php. Фото регулярные выражения русские буквы php

Вот теперь все отлично. Все кириллические буквы найдены. Однако шаблон мы тестировали в реализации регулярных выражений для JavaScript. Давайте попробуем протестировать его в PHP скрипте. Обратите внимание, я использую версию PHP 5.4 (в версиях ниже может быть другой результат). Также еще один нюанс — мы используем кодировку windows-1251 (в следующей статье мы узнаем нюансы работы с кодировкой utf-8).

Итак, скрипт ниже даст результат, который вы увидите на следующем скриншоте:

Источник

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

регулярные выражения русские буквы php. Смотреть фото регулярные выражения русские буквы php. Смотреть картинку регулярные выражения русские буквы php. Картинка про регулярные выражения русские буквы php. Фото регулярные выражения русские буквы php

Разберём следующие регулярные выражения:

Как видите, работают регулярные выражения с русскими символами весьма странно. Решить быстро эти проблемы позволяет модификатор u:

Вывод, который Вы должны сделать из этой статье следующий: если в регулярных выражениях используются русские символы, то надо всегда ставить модификатор u, чтобы после не искать ошибку там, где её нет. Когда-то я провозился больше часа, пытаясь понять, почему русский текст не проходит регулярное выражение, пока не нашёл этого простого решения.

регулярные выражения русские буквы php. Смотреть фото регулярные выражения русские буквы php. Смотреть картинку регулярные выражения русские буквы php. Картинка про регулярные выражения русские буквы php. Фото регулярные выражения русские буквы php

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Комментарии ( 1 ):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

Copyright © 2010-2021 Русаков Михаил Юрьевич. Все права защищены.

Источник

Регулярные выражения кириллица PHP и оригинальная личность

Дата публикации: 2017-03-27

регулярные выражения русские буквы php. Смотреть фото регулярные выражения русские буквы php. Смотреть картинку регулярные выражения русские буквы php. Картинка про регулярные выражения русские буквы php. Фото регулярные выражения русские буквы php

От автора: иногда среди серости будней встречаются оригинальные личности, заряжающие тебя позитивом на целую неделю. Вот на днях встретил одного разработчика, который трактует себя «русофилом». Этот от него я узнал, что регулярные выражения кириллица PHP – вполне совместимые вещи.

Зачем русский язык?

Когда-то я уже говорил, что регулярные выражения чаще всего применяются в различных типах веб-форм. В данной ситуации мы обратим свой «взор» на регистрационные формы и реализацию поддержки ими значений на русском.

Кстати, упомянутый выше «персонаж» во всех своих проектах реализует поддержку ввода кириллицы (в том числе и в формах). По его мнению, российские пользователи должны писать только на русском. Конечно, звучит немного радикально, но прок от этого тоже есть.

В PHP регулярных выражениях поддержка русских букв желательна. Таким образом вы немного улучшаете UX сайта и повышаете уровень безопасности.

регулярные выражения русские буквы php. Смотреть фото регулярные выражения русские буквы php. Смотреть картинку регулярные выражения русские буквы php. Картинка про регулярные выражения русские буквы php. Фото регулярные выражения русские буквы php

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Частая проблема русификации форм

Теперь рассмотрим частую проблему, встречающуюся в PHP c русскими буквами. Регулярные выражения, в которых используются не классы символов, будут исправно работать с кириллическими значениями. Например:

регулярные выражения русские буквы php. Смотреть фото регулярные выражения русские буквы php. Смотреть картинку регулярные выражения русские буквы php. Картинка про регулярные выражения русские буквы php. Фото регулярные выражения русские буквы php

Да какие тут проблемы! Все и так работает нормально! К сожалению, не все так гладко с часто употребляемой функцией для операций с «регулярками» preg_match (). В качестве доказательства применим шаблон, созданный с помощью символьных классов:

В Денвере этот пример будет работать нормально, но на других «нелокальных» серваках – не факт. Поэтому на специализированных форумах часто можно встретить вопросы разработчиков, столкнувшихся с этой проблемой. Тут может быть несколько вариантов ее решения:

Прописка локали с помощью функции setlocale(), в параметрах которой также указывается кодировка русских букв в PHP:

регулярные выражения русские буквы php. Смотреть фото регулярные выражения русские буквы php. Смотреть картинку регулярные выражения русские буквы php. Картинка про регулярные выражения русские буквы php. Фото регулярные выражения русские буквы php

регулярные выражения русские буквы php. Смотреть фото регулярные выражения русские буквы php. Смотреть картинку регулярные выражения русские буквы php. Картинка про регулярные выражения русские буквы php. Фото регулярные выражения русские буквы php

Если дальше капнуть, то многие советуют указывать вместо u модификатор U. Но это разные модификаторы. Например, последний призван бороться с «жадностью» регулярок. Больше об этом написано в документации языка. Это также стоит учитывать при поиске с помощью PHP русских букв в URL.

регулярные выражения русские буквы php. Смотреть фото регулярные выражения русские буквы php. Смотреть картинку регулярные выражения русские буквы php. Картинка про регулярные выражения русские буквы php. Фото регулярные выражения русские буквы php

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

регулярные выражения русские буквы php. Смотреть фото регулярные выражения русские буквы php. Смотреть картинку регулярные выражения русские буквы php. Картинка про регулярные выражения русские буквы php. Фото регулярные выражения русские буквы php

Хотите изучить регулярные выражения на PHP?

Посмотрите 12-ти часовой видео курс по регулярным выражениям на PHP!

Источник

Регулярка для поиска русских слов в тексте

регулярные выражения русские буквы php. Смотреть фото регулярные выражения русские буквы php. Смотреть картинку регулярные выражения русские буквы php. Картинка про регулярные выражения русские буквы php. Фото регулярные выражения русские буквы php

Последнее время многим отечественным компаниям не хватает русскоязычного рынка и очевидным решением является расширение на европейские просторы. Но почему-то к русским товарам и услугам англоязычные граждане относятся предвзято. Поэтому не редко, для улучшения продаж, организации представляются европейскими. И зачастую одним из инструментов продаж служит сайт, который должен быть на английском языке. А поскольку европейская версия сайта, почти всегда, это копия русского, то нужно максимально качественно перевести ее на иностранный язык. И мало того, что перевод должен быть качественным, еще нужно эти переводы аккуратно добавить на сайт. И тут начинается самое интересное: где-то на страницах остаются русские строчки, в js или html остаются русские комментарии, в alt-ах к картинкам и ссылкам остаются русские подписи и прочие мелочи, которые выдают русский след. С такой проблемой уже несколько раз приходилось сталкиваться, довольно сложно все проверить и протестировать. Поэтому, когда пришел очередной клиент с подобной проблемой, было решено упростить и ускорить работу тестировщика — написать небольшой скрипт, который автоматически будет сканировать страницу на наличие русских символов и слов.

Поиск кириллических символов на странице с помощью php

Поскольку основным языком, с которым я работаю – это php, то и поиск было решено писать на нем. По сути, задача очень простая: получить html-код страницы или js-скрипта и проверить весь текст на вхождение русских символов. В данном случае, для поиска идеально подходят регулярные выражения, вот только составить нужное, это всегда для меня головная боль. И этот случай не исключение – провозиться пришлось несколько часов. Основная сложность заключалась в том, что регистронезависимый поиск с помощью регулярки просто так не работает с русскими символами. Чтобы научить регулярку искать нужные символы как в нижнем, так и верхнем регистре, нужно использовать модификатор «u», он позволяет работать с текстом в кодировке UTF-8. А также потребуется второй модификатор – «i», он отвечает за регистронезависимый поиск. Вся регулярка будет выглядеть вот так:

Такое регулярное выражение позволяет найти символы и целые слова, состоящие из русских символов в любом регистре.

Поиск русских слов в тексте с помощью php

Регулярка составлена, теперь дело техники. Остается только написать несколько строк кода, они приведены чуть ниже. Чтобы было понятнее, в коде добавлены комментарии:

Послесловие

Для более удобного поиска и работы со скриптом, можно добавить небольшую форму с полем для ввода одного или нескольких адресов страниц. Должно получиться что-то подобное:

Источник

PHP. Кириллица в регулярных выражениях

регулярные выражения русские буквы php. Смотреть фото регулярные выражения русские буквы php. Смотреть картинку регулярные выражения русские буквы php. Картинка про регулярные выражения русские буквы php. Фото регулярные выражения русские буквы phpСтолкнулся я с проблемой, а именно сайт не в какую не хотел поддерживать русские пароли. При регистрации пользователь в качестве пароля мог использовать только цифры и латинские буквы. Но для рунета также актуальна поддержка паролей с использованием кириллицы. Преимущества в том, что такой пароль пользователь легче запоминает, а также более высокая безопасность, на тот случай если его попытаются подобрать. Например китайские хакеры)).

Задача заключалась научить PHP обрабатывать в регулярный выражениях русские символы. решение нашлось не сразу, но оказалось довольно таки простым.

Перед регулярным выражением в скрипте следует указать локаль, делается это написанием следующей команды (если используется кодировка UTF-8, если CP1251 то пишем её):

далее само регулярное выражение с ключем \u, чтобы обработчик знал, что в вырожении используются национальные символы.

Таким образом мы научили регулярные выражения дружить с кириллицей. Если есть какие-то дополнения то пожалуйста пишите.

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

4 комментария to “PHP. Кириллица в регулярных выражениях”

регулярные выражения русские буквы php. Смотреть фото регулярные выражения русские буквы php. Смотреть картинку регулярные выражения русские буквы php. Картинка про регулярные выражения русские буквы php. Фото регулярные выражения русские буквы php

Не вырезает согласно шаблону прочие символы, типа знака вопроса и т.д. Если убрать ключ \u, то вырезает, но не дружит с кириллицей…

регулярные выражения русские буквы php. Смотреть фото регулярные выражения русские буквы php. Смотреть картинку регулярные выражения русские буквы php. Картинка про регулярные выражения русские буквы php. Фото регулярные выражения русские буквы php

Разобрался. Ключ не там ставил
/[^a-zA-Z0-9а-яА-Я ]/u — верно
/[^a-zA-Z0-9а-яА-Я ]u/ — неверно

регулярные выражения русские буквы php. Смотреть фото регулярные выражения русские буквы php. Смотреть картинку регулярные выражения русские буквы php. Картинка про регулярные выражения русские буквы php. Фото регулярные выражения русские буквы php

Была похожая задача с кириллицей, только на проверку русских символов в слове без цифр, то бишь слово должно быть написано ТОЛЬКО русскими буквами.
Писать через setlocale(LC_ALL, «ru_RU.UTF-8»); порой не вариант — не каждый сервак работает с кириллицей (как и в моем случае тоже). Поэтому решил обойти другим способом через 2 функции. Может кому то понадобится — буду рад

$arr = array(«А» => «A», «Б» => «B», «В» => «V», «Г» => «G», «Д» => «D»,
«Е» => «E», «Ё» => «YO», «Ж» => «ZH»,
«З» => «Z», «И» => «I», «Й» => «J», «К» => «K», «Л» => «L»,
«М» => «M», «Н» => «N», «О» => «O», «П» => «P», «Р» => «R»,
«С» => «S», «Т» => «T», «У» => «U», «Ф» => «F», «Х» => «X»,
«Ц» => «C», «Ч» => «CH», «Ш» => «SH», «Щ» => «SHH», «Ъ» => «‘»,
«Ы» => «Y», «Ь» => «», «Э» => «E», «Ю» => «YU», «Я» => «YA»,
«а» => «a», «б» => «b», «в» => «v», «г» => «g», «д» => «d»,
«е» => «e», «ё» => «yo», «ж» => «zh»,
«з» => «z», «и» => «i», «й» => «j», «к» => «k», «л» => «l»,
«м» => «m», «н» => «n», «о» => «o», «п» => «p», «р» => «r»,
«с» => «s», «т» => «t», «у» => «u», «ф» => «f», «х» => «x»,
«ц» => «c», «ч» => «ch», «ш» => «sh», «щ» => «shh», «ъ» => «»,
«ы» => «y», «ь» => «», «э» => «e», «ю» => «yu», «я» => «ya»,);

Соль в том, что кол-во замен должно равняться кол-ву символов в слове

регулярные выражения русские буквы php. Смотреть фото регулярные выражения русские буквы php. Смотреть картинку регулярные выражения русские буквы php. Картинка про регулярные выражения русские буквы php. Фото регулярные выражения русские буквы php

А как через preg_match (исключительно через эту функцию) искать внутри файла кириллические слова?

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *