Перевод статьи Тайлера Зея “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-файлы и многое другое.
[customscript]techrocks_custom_after_post_html[/customscript]
[customscript]techrocks_custom_script[/customscript]
Ничего нового
Отличная шпаргалка, благодарю, а что за тема в редакторе?