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

Как можно жить без регулярных выражений? Неужели кто-то умеет обходиться без них?

В тексте нужно найти: "еврейская мама" или "у еврейской мамы" или "еврейская мать".

Делаем: "еврейск.{3,10}ма". (Пределы у меня приблизительны, само собой.)

Или нужно найти: "зеленый театр" или "в зеленом театре" или "из зеленого театра". А еще и по-украински: "зелений театр".

Делаем: "зел(е|ё)н.{1,5}театр". (Тут тоже приблизительно.)

"Смена обстановки", "сменить обстановку", "я сменил обстановку", "нужно сменить обстановку", "смена обстановки".

Делаем: "смен.{1,5}обстановк"

Разные варианты написания "Михайловский собор", "Мих. собор", "Михайл.собор", а еще и по-украински ("Михайлівський"): "Мих.{1,15}собор".

"Общага №4", "общежитие #4", "в общаге номер 4": "общ.{3,15}4".

TL;DR: два слова на русском языке со всеми окончаниями/склонениями/падежами, и при этом недалеко друг от друга.

О том, как лучше учить regexp-ы (на англ.)

Еще: ищем "провокац..." или "провоцир...": "прово(цир|кац)".

"Конфорка" или "комфорка"? "ко(м|н)форка".

А если кто-то (вроде меня) ошибочно пишет то "обходится", то "обходиться", и нужно найти оба варианта: "обходить?ся" или "обходит.?ся". Или: "съезд", "сьезд" или "с'езд" (по украински бывает и с апострофом): "с.езд".

Как правильно писать --- "не искренне"? Или "неискренне"? И сколько букв "н"? Может быть вы и знаете, как правильно, но всегда есть масса текстов с ошибками. Ищем так: "не ?искренн?е".

Как только не пишут этот термин: "пауэрбанк", "повэр бэнк", "повер-банк". Ищем: "п(а|о)(в|у)(е|э)р( |\-)?б(а|э)нк".

"Габриелла", "Габриэла": "Габри(е|э)лл?а".

Ира, Ирка, Иринка, Ирина: "Ир(ин)?к?а".

Ира, Ирка, Иринка, Ирина, Ируся, Ируська: "Ир(а|ка|ина|инка|уся|уська)".

Разные варианты написания фамилии Раймонда Смаллиана: "Шмульян", "Смаллиан", "Смуллиан", "Смалиан", "Смулиан", "Смульян", "Смальян": "(С|Ш)м(а|у)лл?и?ь?(а|я)?н".

Разные варианты написания Sennheiser: "сенн?х(е|а)йзер".

"Виктор Цой", "В.Цой", "у В.Цоя": "В.{1,6}Цо(й|я)".

А если я никак не могу точно запомнить название "Марии́нский парк", а еще и хочу искать названия и на русском и на украинском ("Марії́нський парк"): "Мар{1,10}парк".

Юзая регэкспы я так ищу что мне нужно в русскоязычных текстах, в т.ч. в худ.лите.

В качестве домашнего задания, можете отрендерить эти регулярные выражения для наглядности, как я делал это тут. И найти regexp-ы для слов вроде "бессонница", "галлюцинация", "коммуналка".

(the post first published at 20240413, updated 20240720.)


List of my other blog posts.

Subscribe to my news feed,

Yes, I know about these lousy Disqus ads. Please use adblocker. I would consider to subscribe to 'pro' version of Disqus if the signal/noise ratio in comments would be good enough.