TGTGInsightаналитика telegramLIVE / telegram public index
← Программирование для гуманитариев
Программирование для гуманитариев avatar

TGINSIGHT POST

Post #487

@it_human

Программирование для гуманитариев

Просмотры3,100Количество просмотров
Опубликован12 мая12.05.2021, 16:04
Содержимое поста

Содержимое

Регулярные выражения Если у вас есть проблема и вы решили использовать регулярные выражения, у вас уже две проблемы. (с) Сегодня хочу рассказать о регулярных выражениях тем, кто пока не знает, что это такое. Регулярные выражения - это набор специальных символов, которые позволяют искать в каком-нибудь тексте похожие выражения. Думаю, все вы пользовались комбинацией клавишь Ctr + F для поиска чего-нибудь в документе. Так вот это был поиск точных совпадений. А регулярные выражения умеют искать не только точные совпадения, но и совпадения в тексте, соответствующие определённому шаблону. Например: вы хотите найти все числа в тексте. Или все слова, заканчивающиеся на согласную букву. Или все слова, которые начинаются с большой буквы. Или все слова, перед которыми стоит какое-нибудь число. Можно придумать сотни примеров, где можно таким образом использовать регулярные выражения. Общее тут то, что они позволяют найти кусок текста, соответствующий заданному шаблону. Где они используются? Ну во-первых, они встроены в современные текстовые редакторы для написания кода и таким образом можно найти и заменять в тексте что угодно на что-то-то другое по вашему шаблону. Они используются для тех же целей во многих Unix-утилитах - например, grep или sed. Их поддерживают большинство современных языков программирования, и регулярные выражения можно использовать в вашем коде. Синтаксис регулярных выражений имеет разные стандарты, и может незначительно отличаться в разных языках программирования и в консольных утилитах, поэтому чтобы не ошибиться наверняка, обращайтесь к документации того инструмента, которым вы сейчас пользуетесь. Я же для начала расскажу о некоторых самых распространённых специальных символах, используемых в регулярных выражениях. . (точка) - означает любой символ (букву, знак пунктуации, пробел или перенос строки). Например, регулярное выражение «к.т» найдёт в тексте слова «кот», «кит», «кiт», «к8т». \n - означает новую строку [] (квадратные скобки) позволяют указать, что в тексте встречается один из символов, указанных внутри скобок. Например, «к[ои]т» позволит нам найти все слова «кот» и «кит» в тексте. Также есть символы, указывающие, сколько раз в шаблоне может повторяться какой-либо символ (или набор символов). * (звёздочка) - означает «сколько угодно повторений символа, стоящего перед ней». Сколько угодно, включая ноль. Например, возьмём регулярное выражение «кот!*». Оно означает, что мы ищем строку «кот» + какое угодно число восклицательных знаков после неё. Нам подойдут такие случаи, как «кот» (ноль знаков !), «кот!», «кот!!!!» и так далее. + (плюс) - похож на звёздочку, он означает сколько угодно повторений символа, но не менее 1 раза. «кот!+» - уже не найдёт строку «кот», так как в ней нет восклицательного знака. ? - означает, что какой-то символ встречается либо 0, либо 1 раз. Например, «https?::» - найдёт нам в тексте и «http::» и «https::». Специальные символы можно комбинировать. Например, «к[ои]+т» - означает, один или более символов, указанных в скобках. Этот шаблон найдёт слова «кот», «кооот», «кит», «киоооит». Это лишь небольшая часть символов, которые используются в регулярных выражениях, рассказала я о них для того, чтобы вы не боялись этой темы и дальше продолжили изучать её самостоятельно. Главное - никогда не пытайтесь парсить html с помощью регулярных выражений.