Рубрики
Без рубрики

Давайте Поговорим О РЕГУЛЯРНЫХ ВЫРАЖЕНИЯХ!!

Я думаю, большинство из нас согласится с тем, что “Регулярное выражение” – это одно из таких понятий в информатике… С пометкой “карьера”, “java”, “новички”, “учебник”.

Я думаю, большинство из нас согласилось бы с тем, что:

“Регулярное выражение” – это одно из тех понятий в информатике, которое независимо от того, сколько раз вы практикуетесь, вам, возможно, придется вернуться к своим заметкам или поискать в Google. 😟

Что такое регулярные выражения/регулярные выражения ❓ 😕

Регулярное выражение определяет шаблон поиска для строк. Аббревиатура для регулярного выражения – regex. Шаблон поиска может быть любым, начиная от простого символа, фиксированной строки или сложного выражения, содержащего специальные символы, описывающие шаблон. Шаблон, определенный регулярным выражением, может совпадать один или несколько раз или вообще не совпадать для данной строки.

💥 Общие совпадающие символы:

соответствует любому символу .
Находит регулярное выражение, которое должно совпадать в начале строки. ^ регулярное выражение
Находит регулярное выражение, которое должно совпадать в конце строки. регулярное выражение$
Заданное определение может соответствовать букве a, b или c. [азбука]
Заданное определение может соответствовать a, b или c, за которым следует либо v, либо z. [abc][vz]
Когда каретка появляется в качестве первого символа внутри квадратных скобок, это отменяет шаблон. Этот шаблон соответствует любому символу, кроме a, b или c. [^abc]
Диапазоны: соответствует букве от a до d и цифрам от 1 до 7, но не d1. [a-d1-7]
Z X
Находит X, за которым непосредственно следует Z. XZ
Проверяет, следует ли за ним конец строки. $

💥 Мета – символы:

Любая цифра, сокращенная от [0-9] \d
Не-цифра, сокращение от [^0-9] \D
Символ пробела, сокращенный от [ \t\n\x0b\r\f] \s
Символ, не содержащий пробелов \S
Символ слова, сокращенный от [a-zA-Z_0-9] \w
Символ, не состоящий из слов [^\w] \W
Несколько символов, не содержащих пробелов \S+
Соответствует границе слова, где символ слова равен [a-zA-Z0-9_] \b

🎯 [ПРИМЕЧАНИЕ]: Эти метасимволы имеют ту же первую букву, что и их представление, например, цифра, пробел, слово и граница. Символы верхнего регистра определяют обратное.

💥 Квантификатор:

Квантор определяет, как часто может встречаться элемент. Символы ?, *, + и {} являются определителями.

Встречается ноль или более раз, является коротким для {0,} *
Встречается один или несколько раз, является сокращением от {1,} +
Встречается нет или один раз, ? – это сокращение от {0,1}. ?
Встречается X раз, {} описывает порядок предыдущего либерального {X}
Происходит между X и Y временами {Х, У}
? после того, как квантификатор делает его неохотным квантификатором. Он пытается найти наименьшее совпадение. Это приводит к остановке регулярного выражения при первом совпадении. *?

🎯 [ЗАМЕЧАЕТ] – Обратная косая черта \ – это экранирующий символ в строках Java. Это означает, что обратная косая черта имеет предопределенное значение в Java. Вы должны использовать двойную обратную косую черту \, чтобы определить единственную обратную косую черту. Если вы хотите определить \w, то вы должны использовать \win в своем регулярном выражении. Если вы хотите использовать обратную косую черту в качестве литерала, вы должны ввести \\, поскольку \ также является экранирующим символом в регулярных выражениях.

💥 Переопределенные методы для строки для обработки регулярных выражений.

Вычисляет, соответствует ли “регулярное выражение” s. Возвращает значение true только в том случае, если можно сопоставить ВСЮ строку целиком. s.совпадения(“регулярное выражение”)
Создает массив с подстроками s, разделенными при появлении “регулярного выражения”. “регулярное выражение” не включается в результат. s.split(“регулярное выражение”)
Заменяет первое вхождение “регулярного выражения” на “замена. s.replaceFirst(“регулярное выражение”), “замена”
Заменяет все вхождения “регулярного выражения” на “замена. s.replaceAll(“регулярное выражение”), “замена”

Попрактикуйтесь в своих навыках регулярных выражений здесь Шпаргалка

Некоторые ресурсы, собранные с дискуссионной панели: regex101 regexp Некоторые ресурсы, собранные с дискуссионной панели:

Спасибо тебе, Мадза, Джейкир, за ссылки.

Некоторые из моих других постов:

Статья goto Модификаторы доступа к Java
Статья goto Дженерики Java
Статья goto Регулярное выражение Java
Статья goto Java Streams Api

Пожалуйста, оставьте ❤️ , если вам понравился этот пост! A 🦄 было бы здорово!

И не стесняйтесь, дайте мне знать в обсуждениях, если вы считаете, что я что-то пропустил.

ХОРОШЕГО ДНЯ!

Оригинал: “https://dev.to/the_unconventional_coder/lets-talk-about-regex-3npd”