Files

62 lines
2.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: 587d7db6367417b2b2512b9b
title: Як знайти символи за допомогою "лінивого" збігу
challengeType: 1
forumTopicId: 301341
dashedName: find-characters-with-lazy-matching
---
# --description--
У регулярних виразах "жадібний" збіг (<dfn>greedy</dfn>) знаходить найдовшу можливу частину рядка, яка відповідає шаблону регулярного виразу та видає його як збіг. Альтернативою є "лінивий" збіг (<dfn>lazy</dfn>), який знаходить найменшу можливу частину рядка, що відповідає шаблону регулярного виразу.
Ви можете застосувати регулярний вираз `/t[a-z]*i/` до рядка `"titanic"`. Цей регулярний вираз фактично є шаблоном, який починається з `t`, закінчується на `i` та має кілька літер між ними.
Регулярні вирази за замовчуванням "жадібні", тому збіг видасть `["titani"]`. Він знаходить найбільший можливий підрядок, який відповідає шаблону.
Однак ви можете застосувати символ `?`, щоб змінити його на "лінивий" пошук збігів. Код `"titanic"`, зіставлений зі скоригованим регулярним виразом `/t[a-z]*?i/`, видає `["ti"]`.
**Примітка:** Слід уникати синтаксичного аналізу HTML регулярних виразів, але ви можете зіставляти рядок HTML з шаблоном за допомогою регулярних виразів.
# --instructions--
Виправте регулярний вираз `/<.*>/`, аби він видав теґ HTML `<h1>`, а не текст `"<h1>Winter is coming</h1>"`. Пам'ятайте, що спеціальний символ `.` в регулярному виразі відповідає будь-якому символу.
# --hints--
Змінна `result` повинна бути масивом, який містить `<h1>`
```js
assert(result[0] == '<h1>');
```
`myRegex` повинен використовувати "лінивий" пошук збігів
```js
assert(/[^\\][\*\+\?]\?/.test(myRegex));
```
`myRegex` не повинен містити рядок `h1`
```js
assert(!myRegex.source.match('h1'));
```
# --seed--
## --seed-contents--
```js
let text = "<h1>Winter is coming</h1>";
let myRegex = /<.*>/; // Change this line
let result = text.match(myRegex);
```
# --solutions--
```js
let text = "<h1>Winter is coming</h1>";
let myRegex = /<.*?>/; // Change this line
let result = text.match(myRegex);
```