Завершение регулярных выражений: изучение JavaScript
Сегодня я закончу раздел регулярных выражений JavaScript BootCamp, который я делал в течение последнего месяца. Этот раздел курса был довольно сложным. Я все же выдержал в конце. Итак, вот последние фрагменты кода, которые я выучил.
Спецификаторы количества
В этом разделе я буду использовать спецификаторы количества, чтобы указать верхние и нижние совпадения в шаблонах. Это связано с фигурными скобками. Я поставил два числа в фигурных скобках. Это количество совпадений символа в выражении.
let ohStr "Ohhh no"; let ohRegex = /Oh{3,6} no/; // Change this line let result = ohRegex.test(ohStr); // Lower Number of Matches let haStr = "Hazzzzah"; let haRegex = /Haz{4,}ah/; // Change this line let result = haRegex.test(haStr); // Exact Number of Matches let timStr = "Timmmmber"; let timRegex = /Tim{4}ber/; // Change this line let result = timRegex.test(timStr);
Проверка существования
Используя оператор вопросительного знака, я могу проверить элементы, которые могут существовать или не существовать в выражении. Итак, в английском языке есть несоответствия в правописании. Иногда слово «фаворит» пишется через «о», а иногда через «оу». Вот пример кода того, о чем я говорю:
let favWord = "favorite"; let favRegex = /favou?rite/; // Change this line let result = favRegex.test(favWord);
Положительные и отрицательные прогнозы
Я буду использовать просмотр вперед для проверки шаблонов в строке, которая идет по строке. Они сказали, что было бы неплохо проверять разные шаблоны строк. Существует два типа прогнозов: положительные и негативные прогнозы. Они оба немного отличаются, так что давайте углубимся в это.
// Positive Lookahead let sampleWord = "astronaut"; let pwRegex = /(?=\w{6})(?=\D*\d{2})/; // Change this line let result = pwRegex.test(sampleWord); // Mixed Character Grouping let myString = "Eleanor Roosevelt"; let myRegex = /(Eleanor|Franklin) (([A-Z]\.?|[A-Z][a-z]+) )?Roosevelt/; // Change this line let result = myRegex.test(myString); // Change this line // Capture Groups let repeatNum = "42 42 42"; let reRegex = /^(\d+) \1 \1$/; // Change this line let result = reRegex.test(repeatNum); // Last Problem let hello = " Hello, World! "; let wsRegex = /^\s+|\s+$/gi; // Change this line let result = hello.replace(wsRegex, "");
Это была последняя проблема в регулярном выражении. Наконец-то я могу уйти от этого утомительного раздела. Надеюсь, вам всем понравилась часть этого видеоблога, посвященная регулярным выражениям. Следующий раздел будет посвящен отладке. Это должно быть весело. Продолжайте читать для этого.