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

Regex - это сокращение от регулярного выражения, которое используется для определения шаблона поиска. Эти поисковые шаблоны затем можно использовать в сочетании с различными методами, такими как функции Javascript match, replace, search и split, чтобы обеспечить очень тонкий анализ строк.

Прежде чем углубиться в то, как создавать выражения регулярных выражений, я хочу упомянуть, что существует множество отличных справочных сайтов для изучения и практики работы регулярных выражений. Я использую regex101 для проверки выражений и для быстрого ознакомления, но существует несколько похожих сайтов, таких как regexr. И, конечно же, ничто не заменит попытки создать код для практики.

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

В этом примере я использую скучные старые строки в качестве выражения, и наша функция поиска возвращает первое совпадающее значение индекса или -1, если совпадений нет. Я говорю «скучно», потому что простые строки вроде не используют ни один из инструментов, которые есть в регулярном выражении. Обратите внимание, что второй пример по-прежнему возвращает 1, поскольку эта точная последовательность находится внутри строки, тогда как третий пример возвращает -1, поскольку «hola» не содержится.

Точка в выражении регулярного выражения может быть заменена любым символом. Если вам нужно указать буквальную точку в выражении, вы можете «уйти» в нее, поставив перед ней косую черту.

Это выражение регулярного выражения использует набор. Устанавливает поиск в одной позиции в последовательности для всех символов, содержащихся в наборе. В этом случае выражение ищет строку, первая позиция которой - «b», «c» или «r», за которой следуют символы «a» и «t». Обратите внимание, что только четвертый тест не соответствует. Наборы сочетаются со многими другими инструментами регулярных выражений, что позволяет создавать наборы, содержащие специальные символы и диапазоны, а также способы поиска более одного совпадения одного и того же набора.

/ [a-z] / - Эти наборы включают диапазоны. Они будут соответствовать любому символу между значениями через дефис, включая два значения. В этом примере регулярное выражение представляет собой шаблон длиной 3 символа. Первая может быть любой заглавной буквой, вторая - любой строчной буквой, а третья - любой цифрой. Эти диапазоны также могут быть объединены в один набор для большей универсальности. Теперь давайте посмотрим, как указать кратные.

Символы?, * И + обозначают, что предыдущий символ повторяется разное количество раз. «?» Соответствует предыдущему символу 0–1 раз, «*» соответствует 0 или более, а «+» соответствует 1 или более раз. Обратите внимание, что в примере с регулярным выражением 1 «?» В выражении соответствует только первым «s» в «catsss», а «+» в третьем выражении не соответствует «cat».

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

В первом примере выше я использую выражение, которое ищет одну или несколько цифр, за которыми следует «-», за которым следует еще одна или несколько цифр, еще один «-», а затем еще несколько цифр. Такое выражение может быть эффективным при поиске телефонных номеров в строках.

Второе выражение ищет один или несколько словесных символов, за которыми следует ".", За которым снова следует один или несколько словесных символов. В этом случае он соответствует только URL-адресу в строке. В следующем примере та же строка затем разбивается на массив в каждом экземпляре пробела с помощью выражения «\ s».

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