Моя шпаргалка с регулярными выражениями

2
4524
views

Перевод статьи Тайлера Зея “My Regex Cheatsheet — 25 Example Regex Rules”.

Регулярные выражения. Шаблон.

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

…что касается темы поста.

Если мы с вами похожи, то регулярные выражения временами могут от вас ускользать. Я ищу хороший курс по этой теме почти 6 месяцев. Просто что-то, что сделало бы regexr.com действительно полезным, и при этом не такой сайт, где я просто набирал бы наугад строки кода в надежде, что он заработает волшебным образом.

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

[javascript]
let re;

//ищет строку между слэшей. «hello» будет совпадать с шаблоном, а «HeLlo» — нет.
re = /hello/;
//строчное i означает нечувствительность к регистру. С шаблоном будет совпадать и «HellO».
re = /hello/i;

// пояснение распространенных символов в поиске

re = /^h/i; // Знак ^ означает, что искомое должно начинаться с указанного символа. Если позиция 0 не является буквой или цифрой, то значение не совпадет с шаблоном. Например, «hello» совпадет, а «Why hello!» — нет.

re = /ld$/i; //Знак $ означает, что строка должна заканчиваться на указанную букву или цифру. С этим шаблоном совпадет «hello world», но не «hello worlds».

re = /^hello$/i; //Искомое должно начинаться и кончаться на «hello». Таким образом «hello» совпадет с шаблоном, а «hello world» — нет.

re = /^hello$/ig; // строчное g означает «глобально». Это значит, что поиск будет вестись по всей строке чтобы найти все совпадения.

re = /^h.llo$/i; //Символ точки "." это специальный символ для одного знака (он может быть любым). «hallo» совпадет с шаблоном поиска.

re = /h*llo/i; //Символ звездочки * это специальный символ, который может означать много символов. С шаблоном поиска совпадет «heeeeeeeeeeeello», а также «heasdfasdfasdfllo».

re = /gre?a?y/i; //Вопросительній знак ? Означает два варианта: он может принимать значение символа, стоящего непосредственно за ним, или остаться пустым.

re = /gre?a?y\?/i; // обратный слэш сообщает, что следующие за ним мета-символы нужно воспринимать буквально.

re = /gr[ae]y/i; // должно быть e или a.

re = /[^GF]ray/i; // Шаблон совпадет с всем, КРОМЕ GF.

re = /[A-Z]ray/; // С шаблоном совпадет любая прописная буква латинского алфавита.

re = /[a-z]ray/; // С шаблоном совпадет любая строчная буква латинского алфавита.

re = /[A-Za-z]ray/; // С шаблоном совпадет любая буква.

re = /[A-Za-z0-9]ray/; // С шаблоном совпадет любая буква или цифра.

// Фигурные скобки {} — Квантификаторы

re = /He[a-z]{3}/i; // Шаблон должен повториться ровно {m} раз. Касается предыдущего символа/регулярного выражения.

re = /He[a-z]{2,3}/i; // Шаблон должен повториться, а количество повторов должно попадать в указанный диапазон. Касается предыдущего символа/регулярного выражения.

re = /He[a-z]{2,}/i; // Шаблон должен повториться как минимум {m} раз.

// Скобки () — Группирование

re = /([0-9]x){3}/; // Тройной повтор группы из любого числа и символа «х»

// быстрые символы

re = /\w/; //слово

re = /\w+/; //знак плюс + означает одно ил более слов

re = /\W/; //не слово

re = /\d/; //совпадает с любой цифрой

re = /\d+/; //совпадает с любой цифрой 0 или более раз

re = /\D+/; //совпадает с любой не-цифрой

const str = ‘Hello World! My Name Is Tyler.’;
//const str = ‘grey’;

class Regex {
constructor(str, re) {
this.str = str;
this.re = re;
}
mytest() {
if (this.re.test(this.str)) {
return [this.re.exec(this.str), `${this.str} contains the regex search of: ${this.re.source}`];
} else {
return `No luck! Hopefully, ${this.str} should not match ${this.re.source}`;
}
}
}

const result = new Regex(str, re);
console.log(result.mytest());

[/javascript]

Что касается функций, вот наиболее распространенные js-функции:

1) exec() О функции

Эта функция возвращает массив или null.

2) test() О функции

Эта функция возвращает true/false.

3) search() О функции

Эта функция возвращает индекс, где поиск находит регулярное выражение, или «1», если он ничего не находит.

4) replace() О функции

Эта функция возвращает новую строку, где происходит замена искомого.

Лучший найденный мной курс это курс по JS от Брэда Трейвери на Udemy. Вот ссылка. В высшей степени рекомендую. Он описывает отличные способы структурировать ваши JS-файлы и многое другое.



2 КОММЕНТАРИИ

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here