--- id: 587d7db6367417b2b2512b9b title: Як знайти символи за допомогою "лінивого" збігу challengeType: 1 forumTopicId: 301341 dashedName: find-characters-with-lazy-matching --- # --description-- У регулярних виразах "жадібний" збіг (greedy) знаходить найдовшу можливу частину рядка, яка відповідає шаблону регулярного виразу та видає його як збіг. Альтернативою є "лінивий" збіг (lazy), який знаходить найменшу можливу частину рядка, що відповідає шаблону регулярного виразу. Ви можете застосувати регулярний вираз `/t[a-z]*i/` до рядка `"titanic"`. Цей регулярний вираз фактично є шаблоном, який починається з `t`, закінчується на `i` та має кілька літер між ними. Регулярні вирази за замовчуванням "жадібні", тому збіг видасть `["titani"]`. Він знаходить найбільший можливий підрядок, який відповідає шаблону. Однак ви можете застосувати символ `?`, щоб змінити його на "лінивий" пошук збігів. Код `"titanic"`, зіставлений зі скоригованим регулярним виразом `/t[a-z]*?i/`, видає `["ti"]`. **Примітка:** Слід уникати синтаксичного аналізу HTML регулярних виразів, але ви можете зіставляти рядок HTML з шаблоном за допомогою регулярних виразів. # --instructions-- Виправте регулярний вираз `/<.*>/`, аби він видав теґ HTML `

`, а не текст `"

Winter is coming

"`. Пам'ятайте, що спеціальний символ `.` в регулярному виразі відповідає будь-якому символу. # --hints-- Змінна `result` повинна бути масивом, який містить `

` ```js assert(result[0] == '

'); ``` `myRegex` повинен використовувати "лінивий" пошук збігів ```js assert(/[^\\][\*\+\?]\?/.test(myRegex)); ``` `myRegex` не повинен містити рядок `h1` ```js assert(!myRegex.source.match('h1')); ``` # --seed-- ## --seed-contents-- ```js let text = "

Winter is coming

"; let myRegex = /<.*>/; // Change this line let result = text.match(myRegex); ``` # --solutions-- ```js let text = "

Winter is coming

"; let myRegex = /<.*?>/; // Change this line let result = text.match(myRegex); ```