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

Накорми Попугая

Аркады, Маджонг, Казуальные

Играть

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

  • AlexKud AlexKud 40 постов
  • unimas unimas 13 постов
  • hapaevilya hapaevilya 2 поста
Посмотреть весь топ

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

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

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

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

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
1607
Fideli0
Fideli0
1 месяц назад
Специфический юмор
Серия Deep

We are like the dreamer, who dreams and then lives inside the dream, but who is the dreamer?⁠⁠

Почему мы говорим "спал как ребенок"? Дети просыпаются с плачем каждые два часа. Я хочу спать, как моя кошка... 14 часов, никаких обязанностей, никаких сожалений.

Сон Короткопост Текст Дети Регулярные выражения Кот
84
42
trapwalker
trapwalker
4 месяца назад
Лига Сисадминов
Серия Простыми словами

Ответ на пост «Regex должен быть уничтожен»⁠⁠1

Если решили проверять email regexp'ом, то вот корректный вариант для реализации RFC822:

(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t] )+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?: \r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:( ?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\0 31]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\ ](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+ (?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?: (?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z |(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n) ?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\ r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n) ?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t] )*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])* )(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t] )+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*) *:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+ |\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r \n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?: \r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t ]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031 ]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\]( ?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(? :(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(? :\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(? :(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)? [ \t]))*"(?:(?:\r\n)?[ \t])*)*:(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]| \\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<> @,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|" (?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t] )*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\ ".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(? :[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[ \]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000- \031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|( ?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,; :\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([ ^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\" .\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\ ]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\ [\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\ r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\] |\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \0 00-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\ .|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@, ;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(? :[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])* (?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\". \[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[ ^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\] ]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)(?:,\s*( ?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\ ".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:( ?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[ \["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t ])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t ])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(? :\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+| \Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?: [^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\ ]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n) ?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[" ()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n) ?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<> @,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@, ;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t] )*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\ ".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)? (?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\". \[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?: \r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[ "()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t]) *))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]) +|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\ .(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z |(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:( ?:\r\n)?[ \t])*))*)?;\s*)

Ну ладно, чертов перл давно устарел, вот чуть попроще:

(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])

Ещё не передумали? Просто поверьте на наличие "собаки", и попробуйте туда отправить письмо. Если пользователь подтвердил регистрацию пройдя по ссылке из письма - всё хорошо. А Парсить email'ы откуда попало - это путь спамера. Они должны страдать.

Показать полностью
[моё] Мемы Regex IT юмор Регулярные выражения Электронная почта Ответ на пост Текст Длиннопост
53
780
Skyscrew
Skyscrew
4 месяца назад
Лига Сисадминов

Regex должен быть уничтожен⁠⁠1

Regex должен быть уничтожен
Картинка с текстом Мемы Regex Властелин колец Фродо Бэггинс IT юмор Регулярные выражения
179
Партнёрский материал Реклама
specials
specials

А вы знали, что по легенде тамагочи — это инопланетяне?⁠⁠

Они прилетели, чтобы изучать нашу планету, но оказалось, что без защитной оболочки им тут не справиться. Но в ваших силах им помочь! Открывайте игру с тамагочи и сделайте электронного питомца счастливым. Это не так просто, как было в детстве. Если справитесь, получите награду в профиль.

Играть в тамагочи

Тамагочи Ачивка Детство Текст
19
Solid91
Solid91
9 месяцев назад

Подборка бесплатных тренажёров по Python, SQL, регуляркам⁠⁠

Сделал страничку, куда поместил все бесплатные тренажёры по этим языкам, которое нашёл.
Постараюсь обновлять. Позже добавлю и другой полезный контент. Если есть, что можно было бы добавить – пишите 👇🏻

[моё] Полезное Сайт Python Программирование Тренажерный зал SQL Регулярные выражения IT Подборка Текст
1
0
Mathos
Mathos
10 месяцев назад

Почему нужно записывать [А-яЁё], но не [А-я]?⁠⁠

Почему нужно записывать [А-яЁё], но не [А-я]? Программирование, Регулярные выражения, Юмор, Печаль, Загадка, Русский язык

Почему буквы расположены в таком порядке? Почему в Unicode, не создали отдельно по упорядоченному алфавиту, для каждого же языка места хватает? Это такая шутка?

Программирование Регулярные выражения Юмор Печаль Загадка Русский язык
10
3
Mathos
Mathos
11 месяцев назад
Лига образования
Серия Что такое язык программирования?

Регулярки - применение. Итог темы об автоматных языках⁠⁠

Предыдущая статья: Регулярные выражения и регулярные множества - ещё один способ задания автоматного языка в vk.com

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

Регулярки - применение. Итог темы об автоматных языках Урок, Регулярные выражения, Длиннопост, Программирование, Язык

Схемы

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

Регулярные выражения (далее РВ) по своей сути являются языком из алфавита { |, (, ), *, a}, где а - множество различных символов алфавита задаваемого языка. Можно ли с помощью РВ задать язык РВ? Ответ: нет, так как язык РВ не является автоматным, из-за самовложения он является КС-языком. Ниже представлена его грамматика с учётом приоритетов операций:

R → T | R ′′|′′ T
T → M | RM
M → a | M* | ( R ) | ε

Запись ′′|′′ представляет знак | используемый в регулярных выражениях.

При реализации РВ, человеческая лень с одной стороны упростила запись РВ , с другой усложнило понимание и чтение их, но это спорное утверждение. Была расширена нотация языка с помощью сокращений, для кол-ва повторений:

a? = (a|)
a+ = (aa*)
a{2,4} = (aa|aaa|aaaa)

Сокращение для «или»:
[abcd] = (a|b|c|d) - нужно отметить ещё, что символы между [ и ] не нужно экранировать.

Сокращения часто встречающихся множеств, один пример:
\d = (0|1|2|3|4|5|6|7|8|9)

А то и вовсе добавлены управляющие символы движка распознавателя, для указания где в строке нужно искать совпадение в ^ начале или в $ конце? В любом случае вам придётся открывать руководство конкретно-используемого инструмента, так как на долго в голове всё это удержать не возможно.

С помощью всего этого запись: (+|-|)(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)* превратилась в [+-]?\d+ , но вам никто не запрещает писать по «старинке».

В этой же статье я хотел вам показать взаимосвязь регулярных выражений с автоматными языками и распознавателями.

Итог: С помощью автоматных грамматик и регулярных выражений определяется синтаксис простейших конструкций языков программирования, таких как идентификаторы, различные литералы цифр, знаки операций.

Путеводитель по пройденным статьям:
1. Что такое язык программирования? Не спешим отвечать, знакомимся с определением формальных языков
2. Грамматика языка и порождающие грамматики. Сказ о «правильных» скобочках
3. Хомски и его иерархия грамматик
4. Дерево вывода предложения (сентенции) грамматики. Синтаксическое дерево
5. Задача разбора, для чего она нужна? Или что такое parsing?
6. Эквивалентность и однозначность грамматики или почему иногда 2+2*2=8?
7. Графы автоматных грамматик. Что же, начинаем знакомится с конечными автоматами?
8. Конечные автоматы, что там внутри?
9. Обещанная реализация КА и попытка создать таблицу переходов не детерминированному автомату
10. Преобразование НКА в ДКА, один из алгоритмов
11. Синтаксические диаграммы автоматных языков - рисунок порядка автоматных языков
12. Регулярные выражения и регулярные множества - ещё один способ задания автоматного языка

Ну как-то так, друзья. Дальше в лес КС-грамматик, присоединяйтесь.

UPD:

Читать далее...

Показать полностью 1
Урок Регулярные выражения Длиннопост Программирование Язык
0
8
Mathos
Mathos
11 месяцев назад
Лига образования
Серия Что такое язык программирования?

Регулярные выражения и регулярные множества - ещё один способ задания автоматного языка⁠⁠

Регулярные выражения и регулярные множества - ещё один способ задания автоматного языка.

Предыдущая статья: Синтаксические диаграммы автоматных языков - рисунок порядка автоматных языков. в vk.com

Ещё одним способом задать язык является регулярное выражение. Регулярным выражением обозначают множество цепочек, которое называют регулярное множество. Чтобы задать регулярное выражение для некого алфавита Σ следуют учитывать 6 правил:

  1. Отдельный символ из алфавита Σ есть регулярное выражение. Например символ а ∈ Σ (символ из алфавита Σ) задаёт множество {а}.

  2. Пустая цепочка ε есть регулярное выражение, задаёт множество {ε}

  3. Если R и Q - регулярные выражения, то запись RQ тоже регулярное выражение, которое обозначает сцеплённое множество, где первая цепочка пары образуется выражением R, а вторая выражением Q. Сцепление ещё называют конкатенацией.

  4. Если R и Q - регулярные выражения, то запись R | Q тоже регулярное выражение, которое обозначает объединение множеств цепочек заданных выражениями R и Q. | - знак читается как «или».

  5. Если R регулярное выражение, то запись R* тоже регулярное выражение, которое обозначает множество, которое получается путём повторения цепочек множества заданное R. Повторение ещё называют итерация.

  6. Если R регулярное выражение, то запись (R) тоже регулярное выражение и обозначает тоже самое множество, что и R.

Предполагаем приоритет операции, высший имеет «*» - повторение, затем сцепление и низший «|» («или»). Скобки используются для изменения порядка операций.

Зачастую при записи регулярного выражения запись ε опускают и вводится дополнительный оператор «один раз и более» обозначенный символом «⁺», что значит R⁺=RR*. Вот так это выглядит на примере языка целых чисел со знаком:

(+ | – | ) (0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 )⁺

Теорема Клини гласит: Автоматные языки являются регулярными множествами. Регулярные множества являются автоматными языками.

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

И чтобы вам было проще понять правила сделаем таблицу соответствия правил с участками рисунка порядка (синтаксической диаграммы) языка.

Регулярные выражения и регулярные множества - ещё один способ задания автоматного языка Урок, Программирование, Регулярные выражения, Теория, Обучение, ВКонтакте (ссылка)

Таблица соответствия

На этом урок окончен. В следующем мы обсудим регулярные выражения на практике и подытожим тему автоматных языков. Новоиспечённые подписываемся, с нами интересно. Дайте пятюню.

UPD:

Читать далее...

Показать полностью 1
Урок Программирование Регулярные выражения Теория Обучение ВКонтакте (ссылка)
1
Партнёрский материал Реклама
specials
specials

Помните своего тамагочи?⁠⁠

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

ГДЕ МОЙ ТАМАГОЧИ

Игры Награда Тамагочи Ностальгия Текст
208
luchik.magazine
luchik.magazine
Это страница журнала «Лучик». Ежемесячный 80-страничный журнал для детей школьного возраста и их родителей.
1 год назад

Кто хватался за пистолет при слове «культура»?⁠⁠

В оригинале фраза звучит следующим образом: "При слове "культура" я снимаю с предохранителя свой браунинг". И нет, это говорил не Геббельс.

Кто хватался за пистолет при слове «культура»? История (наука), Культура, Революция, Военная история, Литература, Регулярные выражения, Пословицы и поговорки, Образование, Биография, Германия, Длиннопост

Браунинг образца 1910 года – тот самый, который надо снимать с предохранителя при слове "культура"

Согласно красивому мифу, фраза звучит в пьесе одного немецкого драматурга в следующих обстоятельствах. Высококультурная публика расходится то ли после концерта, то ли после спектакля, предаваясь умным рассуждениям о только что услышанном и увиденном. У подъезда побирается нищая девочка. Публика обходит её, стараясь не замечать... И вот тут-то герой пьесы и произносит эту сакраментальную фразу.

Кто хватался за пистолет при слове «культура»? История (наука), Культура, Революция, Военная история, Литература, Регулярные выражения, Пословицы и поговорки, Образование, Биография, Германия, Длиннопост

Согласитесь, красиво. Но, к сожалению, тоже неправда.

Хотя это действительно слова из пьесы, которая называется "Шлагетер" (фамилия героя), и написал её драматург Ганс Йост. Он был что назывется "реакционером": не любил буржуазной публики, любил простой германский народ и считал виновником его невзгод евреев. Всё это вместе сделало его сторонником Гитлера.

Фраза звучит в пьесе при следующих обстоятельствах. Её герой, недавний участник Первой мировой войны, молодой лейтенант Альберт Лео Шлагетер (кстати, реальное историческое лицо) готовится к поступлению в университет. Он считает, что должен осваивать азы политэкономии, потому что главная политическая борьба за будущее нации развернётся не на поле брани, а в политических и финансово-промышленых лабиринтах.

С ним не согласен его товарищ, считающий, что бороться нужно здесь и сейчас, с оружием в руках. Именно он в ходе спора с Шлагетером и произносит пресловутую фразу. Всё? Нет.

Кто хватался за пистолет при слове «культура»? История (наука), Культура, Революция, Военная история, Литература, Регулярные выражения, Пословицы и поговорки, Образование, Биография, Германия, Длиннопост

Ганс Йост (слева) и его герой, лейтенант Шлагетер

Самое интересное – это реальная история Шлагетера, участника германских добровольческих отрядов, о которых мы в силу понятных причин мало что знаем.

После официального окончания Первой Мировой войны, в которой Германия была объявлена потерпевшей поражение, вооружённое сопротивление немцев отнюдь не прекратилось. Вчерашние солдаты и офицеры не все отправились в Берлин искать работу, спорить об искусстве, напиваться и тосковать, как в романах Ремарка. Нет, армия не прекратила существования. На её основе возник так называемый "Добровольческий корпус", Фрайкор, и ему было суждено сыграть весомую роль в истории.

Кто хватался за пистолет при слове «культура»? История (наука), Культура, Революция, Военная история, Литература, Регулярные выражения, Пословицы и поговорки, Образование, Биография, Германия, Длиннопост

Война окончена, можно разойтись по домам... Не разошлись. Один из отрядов Фрайкора

В частрности, Фрайкор воспрепятствовал "большевизации" Латвии. А главное, не допустил успеха коммунистической революции в Германии в 1919 году и тем самым – положил конец надеждам на Мировую Революцию. Российским большевикам пришлось считаться с тем, что события происходят не в сферическом вакууме революционной теории, а в конкретной стране с конкретными условиями и традициями, что привело к смене курса на "победу революции в отдельной стране" и осознанию необходимости её модернизации.

Кто хватался за пистолет при слове «культура»? История (наука), Культура, Революция, Военная история, Литература, Регулярные выражения, Пословицы и поговорки, Образование, Биография, Германия, Длиннопост

Но это было потом. Жизнь же бойца Фрайкора Альберта Лео Шлагетера оборвалась следующим образом: он организовывал железнодорожные диверсии в Руре (области, отторгнутой от Германии по итогам войны), был задержан французскими властями и расстрелян.

В финале пьесы Йоста он стоит на коленях перед расстрельной командой спиной к зрительному залу. Солдаты целятся сквозь его тело в зрителей. Шлагетер восклицает: "Германия! Молю! Приказываю! Поднимайся!" Звучит залп, вспышка... Конец.

Кто хватался за пистолет при слове «культура»? История (наука), Культура, Революция, Военная история, Литература, Регулярные выражения, Пословицы и поговорки, Образование, Биография, Германия, Длиннопост

Финальная сцена постановки пьесы "Шлагетер"

Вот такая история. Она не является пропагандой нацизма. Нацизму ещё только предстоит зародиться в умах немцев; а пока это время Веймарской республики – буржуазной, лицемерной, коррупционно-воровской и чрезвычайно собою довольной – как всякая "демократия не для всех". Это было время тех, кто был готов на многое, чтобы положить ей конец. На слишком многое...

А в общем, жалко, что миф про культурную публику и нищую девочку – неправда.

Кто хватался за пистолет при слове «культура»? История (наука), Культура, Революция, Военная история, Литература, Регулярные выражения, Пословицы и поговорки, Образование, Биография, Германия, Длиннопост
  • Полистать журнал "Лучик" можно здесь

  • Подписаться с доставкой в почтовый ящик – на сайте Почты России

  • Купить – на Wldberries

  • Скачать несколько номеров бесплатно – здесь

  • Наш Телеграм-канал: https://t.me/luchik_magazine

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