Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Отправляйся в погоню за легендарными сокровищами Бабы Яги в 3D!
А в это время Баба Яга отправится в погоню за тобой.

Убеги от Бабы Яги

Аркады, Мидкорные, 3D

Играть

Топ прошлой недели

  • Rahlkan Rahlkan 1 пост
  • Tannhauser9 Tannhauser9 4 поста
  • alex.carrier alex.carrier 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
Nononno
10 лет назад

Как компиляторы проверяет на корректность регулярные выражения?⁠⁠

С помощью регулярных выражений?
[моё] Регулярные выражения Компилятор Вопрос Текст
5
8
oldSchoolx286
10 лет назад

Программирование для тех кто хотел бы его изучить часть 4. Погружение в ад. Регулярные выражения. Ч1⁠⁠

Доброго дня пикабушники!
Давайте научимся писать регулярные выражения. Многим покажется это странным, ведь "эй чувак, я не писал кода а ты уже с регулярками! Это нечестно!". Не волнуйтесь, и успокойтесь. Вдохните и выдохните. Регулярные выражения помогут сис. админам, и программистам. Более того, другой программист с 50% случаев нихрена не поймет что вы написали и вы сможете гордо выкрикнуть "БДЫЩЬ! МАГИЯ!".
Для чего нужны регулярки?
Для поиска и замены текста, например, можно составить шаблон на основе слова и мыслеформы. Например: "кот", выкинув такие слова из поиска, как котлета, котлован, терракотовый. Оставив "котейка", "котенок", "котофей", "котейкин", можно заменить всякие слова котами, итд.
Принцип регулярных выражений:
Вообще, трудно объяснить регулярки людям которые не знают алгебру-логику и не решали задачки на Машины Тьюринга. Если вы представляете как работает перфолента (та что с "дырочками"), то вы легко войдете в мир регулярных выражений.
Так что если вы технарь пропускайте смело несколько абзацов и начинайте читать примеры кода.
Если вы ничего не знаете о перфолентах и алгебре-логике, то сейчас лучше бы вам сконцентрироваться.
Применение регулярок на практике, где я могу их использовать?
простые выражения используются для проверки E-mail на web страницах, проверки команд через терминал konsole (в KDE), автозаполение формы поиска, так же регулярки используют для парсинга текста, автозамены текста, проверок записей в БД (базы данных) от ВНЕЗАПНЫХ ошибок.
Почему?
Почти все актуальные языки поддерживают регулярные выражения, регулярные выражения свободны от так строковых переменных, у громоздких языков, например у С# достаточно большие проблемы со строками (сложение строк, вычитание, сортировка в строке итд итд). Можно извращаться циклами, stringbuilder-ами, а можно быстро написать регулярку.
для чего НЕ используются регулярные выражения?
*Для парсинга HTML - во первых это плохой стиль. Во вторых за вами придет сатана, когда вы в будете беззащитны (например засыпать у себя дома в своей любимой пижамке), он подкрадется к вам и сделает что-то ужасное.
*Для очевидных решений - если вы ЗНАЕТЕ что интересующая вас подстрока в строке начинается с какого то там символа, и вы абсолютно уверены в количестве символов в подстроке. Например взять слово "кот":
Мой кот пытался поймать мышку
Мой кот сожрал мои наушники
тут слово "кот" начинается после 4 символа (пробелы считаются) и слово в 3 символа.
То есть вам надо вытащить 3 символа после 4 символа т.е. слово "кот".
Начинаем безумие.
ВНИМАНИЕ!
Нельзя вот так взять и написать 1 регулярку для всего-всего. Скорее всего вам понадобится дюжина выражений.
Выборка слов.
Итак есть строка:
Котейка на когтеточке выдавал нам песни группы Ария
Вывод всех слов [а-яА-Я]+ (исключая пробелы и др символы), или так S+ (укороченная запись, не рекомендую пользоваться ей, сломаете себе голову при отлаживании)
[а-яА-Я] - множество символов которые имеются в нашем слове, черточка - означает "от и до".
+ - означает, что соотвествие должно быть хотя бы одно.
Переведу на руссий язык:
Пожалуйста, найди мне слова в предложении:
Котейка на когтеточке выдавал нам песни группы Ария
где есть символы "строчные русские буквы" и "большие русские буквы", группируй символы до тех пор, пока не встретится спец.символ "пробела".
соотвественно [a-zA-Z]+ уже английские символы [0-9]+ цифры.
Подождите? А что если мне нужны только символы, которые встречаются не по порядку, а скажем например мне нужны символы, а и я? решение просто просто пишите [ая]+ без черточек. что если мне нужен пробел? [ ]+ числа от 0 до 9 и пробел? [ 0-9]+
Выделение слова:
Допустим нам надо найти слово Ария
Котейка на когтеточке выдавал нам песни группы Ария
А[а-я]+
Мы знаем, что первая буква А, далее мы просто читаем все оставшееся до символа "пробел" или до конца строки (если буква я - последняя в строке)
Итак попробуйте простые регулярные выражения:
он-лайн http://www.pcre.ru/eval/ (для языков программирования могут быть внесены ограничения, которые немного урезают регулярки)
В следующем уроке, я постараюсь объяснить выражения, рассказать о циклах, спецсимволах, и группировании символов.
Все вопросы в комментариях.
Специально для пикабу.
PS За ошибки не ругаем я не Маяковский.
Показать полностью
[моё] Программирование для чайников Программирование Регулярные выражения Боль Текст Длинн
16
DoctorBooooom
DoctorBooooom
11 лет назад

Древнеегипетские регулярные выражения⁠⁠

Древнеегипетские регулярные выражения
Программирование Древность Регулярные выражения
0
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии