Регулярные выражения. Всё проще чем кажется

Animat House

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

Синтаксис регулярных выражений основан на определенных символах, которые используются для создания шаблонов. Например, символы \d и \w используются для поиска цифр и букв соответственно. Символ . позволяет найти любой символ, а символы * и + обозначают повторения предыдущего символа или группы символов.

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

\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b

Этот шаблон ищет текст, соответствующий структуре email-адреса.

Регулярные выражения также позволяют производить различные операции с текстом. Например, с помощью них можно очистить текст от HTML тегов, заменить все вхождения определенного слова на другое, или проверить, является ли строка валидным URL.

Чтобы использовать регулярные выражения в программировании, необходимо использовать соответствующие функции или методы. Например, в языке Python регулярные выражения реализованы в модуле re. В JavaScript они доступны через объект RegExp. Во многих текстовых редакторах и IDE также доступны функции поиска и замены с использованием регулярных выражений.

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

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

Содержание

Чему я учусь у обычных?

Где я могу нормально писать?

Самый простой покровитель

Специальные символы

lookahead и lookbehind (предварительные и ретроспективные проверки)

Нормальные выражения в различных языках программирования

Чему я учусь у обычных?

Проще говоря, нормальное выражение — это шаблон, используемый для фильтрации текста. Вы можете писать шаблоны (обычные выражения) и таким образом искать символы, слова и т.д. В тексте. Вы также можете создавать шаблоны, например, при заполнении полей электронной почты на разных сайтах, т.е. [email protected]. Я привел это в качестве примера, потому что это очень простой и легкий способ создания шаблона. Теперь, когда вы понимаете, что это такое, давайте приступим к его изучению. (Я обещаю, что это не будет скучно).

Где я могу нормально писать?

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

В ближайшее время я предоставлю вам ссылку на сайт, чтобы вы могли писать со мной по адресу https://www.regextest.com/.

Далее следует краткое введение в использование веб-сайта. В верхней колонке регулярного выражения напишите само регулярное выражение, а в нижней тестовую строку — строку, которую нужно отфильтровать. Если есть совпадение между нормальным выражением и текстом, текст станет синим, и вы сразу увидите это, не задумываясь.

ЧИТАТЬ ЕЩЁ:  Как самостоятельно продвинуть сайт раскрутка от А до Я

Самый простой покровитель

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

Пример регулярки

Вот пример нормальной линии

На этом все, надеюсь, вы поняли нормальное выражение, спасибо за внимание.

Это шутка, но в ней есть нечто большее. Например, вы можете написать букву T и найти все буквы t в тексте.

Регулярные выражения. Всё проще чем кажется

Таким образом, вы просто указываете конкретный символ, но не всегда получаете конкретный символ. Вам нужно написать шаблон. Вот что мы делаем сейчас: пишем букву t в тексте.

Квантификаторы

Я знаю, что это звучит пугающе, но на самом деле это легко. Давайте продолжим тему.

Коэффициент позволяет определить, сколько раз нужно повторить определенный символ (или группу символов). Ниже приведен список инструкций. Затем потренируйтесь с ними.

— Символ повторяется n раз

— Символы повторяются от m до n раз

— Символ повторяется не менее m раз (более m)

Теперь давайте рассмотрим несколько примеров. Предположим, у нас есть SSSSSSSSSSSSSSSSSSSSSSSSSSS. Мы также хотим выбрать слова, в которых буква s повторяется ровно три раза. Для этого вы можете написать s. Другими словами, допустим, вам нужно выделить его, затем написать рядом с ним и повторить это ровно три раза. Результатом будет слово SSS

Регулярные выражения. Всё проще чем кажется

Так почему же он получил больше ссс? Он не совсем правильно выразился, потому что три "с" идут подряд, но это только часть дела. Смысл не в том, чтобы рассмотреть, является ли наладчик другим словом. Пространства тоже в характере! Таким образом, выбирается любой сегмент, соответствующий трем последовательным буквам.

Предположим, что s выбирает сегменты от одного до трех раз. Для этого можно написать s — снова укажите s и напишите эту букву, которая будет повторяться от одного до трех раз.

Регулярные выражения. Всё проще чем кажется

Интересно, что он выбрал их всех. Почему; ответ — та же ситуация, что и раньше. Он смотрит на ssss и получает три последовательных ss и еще одно s рядом с ним.

Наконец, напишите схему, в которой s повторяется не менее трех раз. Для этого напишите: s (это означает, что s повторяется от трех раз до бесконечности).

Регулярные выражения. Всё проще чем кажется

Специальные символы

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

? () — символ повторяется 0 или 1 раз

* () — символ повторяется ноль или более раз

+ () — символ повторяется один или несколько раз.

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

Регулярные выражения. Всё проще чем кажется

Что случилось; я решил, что череда цветов будет продолжаться, и написал u? (такой же, как у вас). Это означает, что u повторяется либо 0, либо 1 раз (т.е. либо вообще не присутствует (не повторяется 0 раз), либо присутствует только один раз (повторяется 1 раз)). Теперь отмечается, что r должно следовать за r. Таким образом, u повторяется один раз, поэтому цвета совпадают, а u не присутствует вообще (повторяется 0 раз), поэтому цвета совпадают. Видите, это просто:)

Измените строку и напишите что-то вроде colouuuuuuuuuuuur color. Допустим, вы хотите указать, что u не существует или должно существовать любое количество раз. Для этого можно написать color*r.

ЧИТАТЬ ЕЩЁ:  8 шагов по проведению контроля качества на сайте

Регулярные выражения. Всё проще чем кажется

То есть, либо u отсутствует, либо повторяется как можно больше раз.

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

Регулярные выражения. Всё проще чем кажется

Специальные символы

Теперь поговорим о специальных символах, используемых в обычных переменных. Это довольно просто, и вам не нужно слишком беспокоиться об этом. Я не буду прикреплять здесь скриншоты (эта статья становится слишком большой). Поэтому, пожалуйста, поймите и примите это заранее и попробуйте сами.

. — Одиночный символ.

[] — набор символов. [A-Z] представляет все символы от A до Z.

^ — начало строки.

$ — конец строки

\ — побег

\{d — любое число

\{D — нечисловой

\{s — пространство

\{S — Все, кроме пространства

\{w — Письма

\{W — все, кроме буквы.

[^someSymbol] — символ отрицания, соответствующий всем символам, кроме выбранного.

Давайте поговорим об отдельных символах. Это означает, что выбирается символ, который повторяется только один раз. Например, вернемся к строке Some Text и выделим букву t, за которой следует любая буква. Сделайте это, написав t.

Это выбирает te, потому что за t следует любая буква (в данном случае e).

Регулярные выражения. Всё проще чем кажется

Давайте двигаться дальше. Предположим, у вас есть строка Some text12345, и вы хотите выбрать все символы (только буквы, без цифр). Для этого вы можете написать следующее [A-Z,a-z]. Что это означает; это указывает на выбор всех букв от A до Z (где выбираются все заглавные буквы), разделенных запятыми, и всех букв от a до z (где все строчные). (письма).

Регулярные выражения. Всё проще чем кажется

Теперь возьмем слово test и выделим первую букву t. Для этого можно написать ^t. Другими словами, вы написали t и указали, что оно должно находиться в начале строки. Важно предварять требуемый символ символом ^.

Регулярные выражения. Всё проще чем кажется

И наоборот, возьмем последний символ t. Для этого напишите $ t$. Важно поставить $ после нужной буквы.

Регулярные выражения. Всё проще чем кажется

Продолжайте побег. Это может показаться пугающим, но на самом деле все очень просто. Например, в некотором тексте нужно выделить точку. Однако точка уже зарезервирована как специальный символ (точка представляет собой любой отдельный символ). Кроме того, чтобы точка не считалась специальным символом, ее можно записать как ɑ, где ɑ — символ, используемый для обозначения точки. Допустим, вы хотите использовать точку как обычный символ.

Регулярные выражения. Всё проще чем кажется

Да ладно, это просто. В этом случае \d может представлять любое число. Например, если вы напишете \d в тексте123, будет выделено только число.

\D является противоположностью: он принимает все символы, кроме цифр. Другими словами, для написания ⌘D требуется все, кроме цифр (и пробелов).

\s соответствует всем пробелам в строке, тогда как ǾS соответствует всем пробелам, кроме пробелов.

В \w используются символы, а в ⌘W — несимволы (включая пробелы).

Теперь поговорим о другом использовании ^. Он может использоваться в качестве отрицания, позволяя исключать символы или группы символов. Например, в слове test, если вы хотите исключить все, кроме буквы t, вы можете написать: [^t].

Регулярные выражения. Всё проще чем кажется

Это точно такая же последовательность, как и последовательность, где ^ обозначает отрицание.

lookahead и lookbehind (предварительные и ретроспективные проверки)

Давайте посмотрим, что это такое. При предварительном чтении или чтении с опережением символ или группа символов могут быть выбраны, если за ними следует символ или группа символов. Read-ahead или опережающее чтение позволяет выбрать символ или группу символов при наличии предшествующего символа или группы символов.

ЧИТАТЬ ЕЩЁ:  17 бесплатных jQuery-скриптов для загрузки файлов

Считывание опережения — Проверка считывания опережения — X(? =Y) — ищет X, если за ним следует Y

Негативный поиск вперед — X(? !Y)

Обратное чтение — Обратное чтение — (?<=Y)X — найти Х, при условии, что до него идет Y

Отрицательная обратная проверка — (?

Например, в строке s sw sd st se вы хотите выбрать символ s, за которым следует d. Для этого вы можете написать: s(? =d). Это своего рода проверка, не следует ли за s после d.

Регулярные выражения. Всё проще чем кажется

И наоборот, вы можете выбрать s, если за ним не следует d. Вместо знака равенства можно использовать восклицательный знак (!). вместо знака равенства, чтобы написать s(? !d).

Регулярные выражения. Всё проще чем кажется

Теперь давайте обсудим пост-чтение. Предположим, у вас есть строка s ws ds ts es, и вы хотите выделить символ s, которому предшествует d. Для этого вы можете написать: (?<=d)s

Регулярные выражения. Всё проще чем кажется

Почему на заднем показании нарисована красная линия? Проблема в том, что чтение задним числом не всегда поддерживается, и эта нормальная линия не всегда и не везде работает. Нам нужно найти способ заменить это пост-чтение, но поскольку оно зависит от поставленной задачи, мы не знаем точно, как его заменить. Надеемся, что эта функция будет полностью поддерживаться в ближайшем будущем.

И наоборот, т.е. чтобы выбрать все символы s, до которых не дошел символ d, знак равенства снова должен быть заменен на восклицательный знак: (?

Регулярные выражения. Всё проще чем кажется

Нормальные выражения в различных языках программирования

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

c#.

Здесь вы создаете строку, содержащую текст, который вы хотите проверить, создаете объект класса Regex и записываете регулярное выражение в конструкторе (как уже говорилось, мы не будем объяснять, что такое объект класса и конструктор). Далее создайте объект класса MatchCollection и вызовите метод Matches из объекта регулярного выражения, передав в качестве параметра строку. В результате все результаты добавляются в коллекцию совпадений.

Java.

Аналогичная ситуация существует и здесь. Создайте объект класса Pattern и запишите строку. CASE_INSENSITIVE означает нечувствительность к регистру (т.е. нет разницы между верхним и нижним регистром). Создает объект класса Matcher и записывает обычную строку.

JavaScript

А здесь все просто. Создайте объект регулярного выражения и поместите в него регулярное выражение. Затем вы просто создаете объект matches, который является коллекцией, вызываете метод exec и передаете строку в качестве параметра.

Заключение

Итак, мы описали, что такое регулярное выражение, где используются регулярные выражения и как писать и использовать регулярные выражения в контексте языка программирования. Следует сразу сказать, что написание регулярных выражений — это процесс обучения. Просто практикуйтесь, и я думаю, что у вас все получится! И на этом мы прощаемся. Большое спасибо за внимание. (Хорошего дня, дамы и господа).

Оцените статью