From fd901d25a678f0e3b6aaae8f6034469b9b8820d9 Mon Sep 17 00:00:00 2001 From: Mariana Melnychenko <110090508+MrsMelnychenko@users.noreply.github.com> Date: Fri, 6 Jan 2023 18:53:38 +0200 Subject: [PATCH 01/11] Update article.md --- .../14-regexp-lookahead-lookbehind/article.md | 124 +++++++++--------- 1 file changed, 62 insertions(+), 62 deletions(-) diff --git a/9-regular-expressions/14-regexp-lookahead-lookbehind/article.md b/9-regular-expressions/14-regexp-lookahead-lookbehind/article.md index cee8215f9..e6c7f197f 100644 --- a/9-regular-expressions/14-regexp-lookahead-lookbehind/article.md +++ b/9-regular-expressions/14-regexp-lookahead-lookbehind/article.md @@ -1,134 +1,134 @@ -# Lookahead and lookbehind +# Перегляд уперед та назад -Sometimes we need to find only those matches for a pattern that are followed or preceded by another pattern. +Іноді, нам потрібно знайти тільки такі співпадіння з шаблоном, за якими слідує, або яким передує інший шаблон. -There's a special syntax for that, called "lookahead" and "lookbehind", together referred to as "lookaround". +Для цього існують спеціальні синтаксичні конструкції, котрі називається "перегляд уперед" та "перегляд назад". -For the start, let's find the price from the string like `subject:1 turkey costs 30€`. That is: a number, followed by `subject:€` sign. +Для початку, давайте знайдемо ціну у рядку `subject:1 індичка коштує 30€`. Маємо: число, за яким йде символ `subject:€`. -## Lookahead +## Перегляд уперед -The syntax is: `pattern:X(?=Y)`, it means "look for `pattern:X`, but match only if followed by `pattern:Y`". There may be any pattern instead of `pattern:X` and `pattern:Y`. +Синтаксис виглядає наступнм чином: `pattern:X(?=Y)`, це означає "шукай `pattern:X`, але вважай його співпадінням, тільки якщо за ним слідує `pattern:Y`". Замість `pattern:X` та `pattern:Y` можуть бути будь-які інші шаблони. -For an integer number followed by `subject:€`, the regexp will be `pattern:\d+(?=€)`: +Для цілого числа, за яким слідує `subject:€`, регулярний вираз виглядатиме наступним чином `pattern:\d+(?=€)`: ```js run -let str = "1 turkey costs 30€"; +let str = "1 індичка коштує 30€"; -alert( str.match(/\d+(?=€)/) ); // 30, the number 1 is ignored, as it's not followed by € +alert( str.match(/\d+(?=€)/) ); // 30, число 1 ігнорується, оскільки після нього не стоїть символ € ``` -Please note: the lookahead is merely a test, the contents of the parentheses `pattern:(?=...)` is not included in the result `match:30`. +Зверніть увагу: Перегляд уперед це свого роду тест, вміст в дужках `pattern:(?=...)` не входить до відображуваного регулярним виразом співпадіння `match:30`. -When we look for `pattern:X(?=Y)`, the regular expression engine finds `pattern:X` and then checks if there's `pattern:Y` immediately after it. If it's not so, then the potential match is skipped, and the search continues. +Коли ми шукаємо `pattern:X(?=Y)`, регулярний вираз знаходить `pattern:X` і далі перевіряє наявність `pattern:Y` одразу після нього. Якщо це не так, тоді потенційне співпадіння пропускається і регулярний вираз продовжує пошук. -More complex tests are possible, e.g. `pattern:X(?=Y)(?=Z)` means: +Можливі і більш складні тести, наприклад `pattern:X(?=Y)(?=Z)` означає: -1. Find `pattern:X`. -2. Check if `pattern:Y` is immediately after `pattern:X` (skip if isn't). -3. Check if `pattern:Z` is also immediately after `pattern:X` (skip if isn't). -4. If both tests passed, then the `pattern:X` is a match, otherwise continue searching. +1. Знайди `pattern:X`. +2. Перевір, чи `pattern:Y` йде одразу після `pattern:X` (пропускай, якщо це не так). +3. Перевір, чи `pattern:Z` також йде одразу пысля `pattern:X` (пропускай, якщо це не так). +4. Якщо обидва тести пройдено, тоді `pattern:X` відповідає умовам пошуку, в інщому випадку - продовжуй пошук. -In other words, such pattern means that we're looking for `pattern:X` followed by `pattern:Y` and `pattern:Z` at the same time. +Інакше кажучи, такий шаблон означає, що ми шукаємо на `pattern:X` за яким одночасно слідують `pattern:Y` та `pattern:Z`. -That's only possible if patterns `pattern:Y` and `pattern:Z` aren't mutually exclusive. +Це можливо тільки за умови, якщо шаблон `pattern:Y` та `pattern:Z` не взаємовиключні. -For example, `pattern:\d+(?=\s)(?=.*30)` looks for `pattern:\d+` that is followed by a space `pattern:(?=\s)`, and there's `30` somewhere after it `pattern:(?=.*30)`: +До прикладу, `pattern:\d+(?=\s)(?=.*30)` шукає на `pattern:\d+` за яким йде пробільний символ `pattern:(?=\s)`, а також `30` десь після нього `pattern:(?=.*30)`: ```js run -let str = "1 turkey costs 30€"; +let str = "1 індичка коштує 30€"; alert( str.match(/\d+(?=\s)(?=.*30)/) ); // 1 ``` -In our string that exactly matches the number `1`. +В нашому рядку цим параметрам повністю відповідає число `1`. -## Negative lookahead +## Негативний перегляд уперед -Let's say that we want a quantity instead, not a price from the same string. That's a number `pattern:\d+`, NOT followed by `subject:€`. +Скажімо, ми хочем знайти кількість, а не ціну в тому самому рядку. Тобто, шукаємо число `pattern:\d+`, за якийм НЕ слідує `subject:€`. -For that, a negative lookahead can be applied. +В такому випадку, доречним буде використання негативного перегляду уперед. -The syntax is: `pattern:X(?!Y)`, it means "search `pattern:X`, but only if not followed by `pattern:Y`". +Синатксис виглядає наступним чином: `pattern:X(?!Y)`, і означає "шукай `pattern:X`, але за умови, що після нього не йде `pattern:Y`". ```js run -let str = "2 turkeys cost 60€"; +let str = "2 індички коштують 60€"; -alert( str.match(/\d+\b(?!€)/g) ); // 2 (the price is not matched) +alert( str.match(/\d+\b(?!€)/g) ); // 2 (ціна не відповідає вимогам шаблону і не відображається в результаті) ``` -## Lookbehind +## Перегляд назад -```warn header="Lookbehind browser compatibility" -Please Note: Lookbehind is not supported in non-V8 browsers, such as Safari, Internet Explorer. +```warn header="Сумісність браузерів з переглядом назад" +Зверніть увагу: Перегляд назад не підтримується в браузерах з відміннимим від V8 двигунами, зокрема Safari, Internet Explorer. ``` -Lookahead allows to add a condition for "what follows". +Перегляд уперед дозволяє додати умову на кшталт "те, що слідує після". -Lookbehind is similar, but it looks behind. That is, it allows to match a pattern only if there's something before it. +Перегляд назад подібний, але дивиться у зворотньому напрямку. Таким чином, він виводить результат, тільки якщо співпадає і шаблон і те, що йде до нього. -The syntax is: -- Positive lookbehind: `pattern:(?<=Y)X`, matches `pattern:X`, but only if there's `pattern:Y` before it. -- Negative lookbehind: `pattern:(? Date: Fri, 6 Jan 2023 18:59:14 +0200 Subject: [PATCH 02/11] Update solution.md --- .../1-find-non-negative-integers/solution.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/9-regular-expressions/14-regexp-lookahead-lookbehind/1-find-non-negative-integers/solution.md b/9-regular-expressions/14-regexp-lookahead-lookbehind/1-find-non-negative-integers/solution.md index ebc12689d..b7e4eb40d 100644 --- a/9-regular-expressions/14-regexp-lookahead-lookbehind/1-find-non-negative-integers/solution.md +++ b/9-regular-expressions/14-regexp-lookahead-lookbehind/1-find-non-negative-integers/solution.md @@ -1,9 +1,8 @@ +Регулярний вираз для цілого числа `pattern:\d+`. -The regexp for an integer number is `pattern:\d+`. +Ми можемо виключити від'ємні числа попередньо написавши регулярний вираз для негативного перегляду назад: `pattern:(? Date: Fri, 6 Jan 2023 19:01:11 +0200 Subject: [PATCH 03/11] Update task.md --- .../1-find-non-negative-integers/task.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/9-regular-expressions/14-regexp-lookahead-lookbehind/1-find-non-negative-integers/task.md b/9-regular-expressions/14-regexp-lookahead-lookbehind/1-find-non-negative-integers/task.md index cd58f9923..85ec5c752 100644 --- a/9-regular-expressions/14-regexp-lookahead-lookbehind/1-find-non-negative-integers/task.md +++ b/9-regular-expressions/14-regexp-lookahead-lookbehind/1-find-non-negative-integers/task.md @@ -1,12 +1,12 @@ -# Find non-negative integers +# Знайдіть цілі невід'ємні числа -There's a string of integer numbers. +Дано рядок з цілих чисел. -Create a regexp that looks for only non-negative ones (zero is allowed). +Напишіть регулярний вираз, який знаходить тільки цілі невід'ємні числа (нуль допускається). -An example of use: +Приклад використання: ```js -let regexp = /your regexp/g; +let regexp = /ваш регулярний вираз/g; let str = "0 12 -5 123 -18"; From b72a0225e486b129c44551f71a7bb0e14f43a656 Mon Sep 17 00:00:00 2001 From: Mariana Melnychenko <110090508+MrsMelnychenko@users.noreply.github.com> Date: Fri, 6 Jan 2023 19:01:33 +0200 Subject: [PATCH 04/11] Update solution.md --- .../1-find-non-negative-integers/solution.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/9-regular-expressions/14-regexp-lookahead-lookbehind/1-find-non-negative-integers/solution.md b/9-regular-expressions/14-regexp-lookahead-lookbehind/1-find-non-negative-integers/solution.md index b7e4eb40d..fe67ab4aa 100644 --- a/9-regular-expressions/14-regexp-lookahead-lookbehind/1-find-non-negative-integers/solution.md +++ b/9-regular-expressions/14-regexp-lookahead-lookbehind/1-find-non-negative-integers/solution.md @@ -2,7 +2,7 @@ Ми можемо виключити від'ємні числа попередньо написавши регулярний вираз для негативного перегляду назад: `pattern:(? Date: Fri, 6 Jan 2023 19:04:06 +0200 Subject: [PATCH 05/11] Update task.md --- .../2-insert-after-head/task.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/9-regular-expressions/14-regexp-lookahead-lookbehind/2-insert-after-head/task.md b/9-regular-expressions/14-regexp-lookahead-lookbehind/2-insert-after-head/task.md index be1a259f6..8e2ab6b47 100644 --- a/9-regular-expressions/14-regexp-lookahead-lookbehind/2-insert-after-head/task.md +++ b/9-regular-expressions/14-regexp-lookahead-lookbehind/2-insert-after-head/task.md @@ -1,13 +1,13 @@ -# Insert After Head +# Додайте після тегу Head -We have a string with an HTML Document. +У нас є рядок з HTML-документом. -Write a regular expression that inserts `

Hello

` immediately after `` tag. The tag may have attributes. +Напишіть регулярний вираз який вставляє `

Привіт

` одразу після тегу ``. Тег може мати атрибути. -For instance: +Приклад: ```js -let regexp = /your regular expression/; +let regexp = /ваш регулярний вираз/; let str = ` @@ -17,13 +17,13 @@ let str = ` `; -str = str.replace(regexp, `

Hello

`); +str = str.replace(regexp, `

Привіт

`); ``` -After that the value of `str` should be: +Після цього значення `str` має бути: ```html -

Hello

+

Привіт

... From f8102837f04b77c812a006bd881d6972b85e8943 Mon Sep 17 00:00:00 2001 From: Mariana Melnychenko <110090508+MrsMelnychenko@users.noreply.github.com> Date: Fri, 6 Jan 2023 19:08:44 +0200 Subject: [PATCH 06/11] Update solution.md --- .../2-insert-after-head/solution.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/9-regular-expressions/14-regexp-lookahead-lookbehind/2-insert-after-head/solution.md b/9-regular-expressions/14-regexp-lookahead-lookbehind/2-insert-after-head/solution.md index b1d377d33..940a2296e 100644 --- a/9-regular-expressions/14-regexp-lookahead-lookbehind/2-insert-after-head/solution.md +++ b/9-regular-expressions/14-regexp-lookahead-lookbehind/2-insert-after-head/solution.md @@ -1,28 +1,28 @@ -In order to insert after the `` tag, we must first find it. We can use the regular expression pattern `pattern:` for that. +Щоб додати інформацію після тегу `` , нам потрібно спершу його знайти. Ми можемо використати для цього шаблон регулярного виразу `pattern:`. -In this task we don't need to modify the `` tag. We only need to add the text after it. +в цьому завданні нам не потрібно змінювати тег ``. Нам потрібно тільки додати текст після нього. -Here's how we can do it: +Ось таким чином ми можемо це зробити: ```js run let str = '......'; -str = str.replace(//, '$&

Hello

'); +str = str.replace(//, '$&

Привіт

'); -alert(str); // ...

Hello

... +alert(str); // ...

Привіт

... ``` -In the replacement string `$&` means the match itself, that is, the part of the source text that corresponds to `pattern:`. It gets replaced by itself plus `

Hello

`. +в заміненому рядку `$&` означає співпадіння саме по собі, тобто, частина вихідного тексту яка відповідає шаблону `pattern:`. Її замінено на неї ж плюс `

Привіт

`. -An alternative is to use lookbehind: +Альнернативою було би використання перегляду назад: ```js run let str = '......'; -str = str.replace(/(?<=)/, `

Hello

`); +str = str.replace(/(?<=)/, `

Привіт

`); -alert(str); // ...

Hello

... +alert(str); // ...

привіт

... ``` -As you can see, there's only lookbehind part in this regexp. +Як бачите, є тільки перегляд назад у цьому регулярному виразі. It works like this: - At every position in the text. From 1cbe619629189f753a79cc6edca01b665517a42e Mon Sep 17 00:00:00 2001 From: Mariana Melnychenko <110090508+MrsMelnychenko@users.noreply.github.com> Date: Fri, 6 Jan 2023 19:13:23 +0200 Subject: [PATCH 07/11] Update task.md --- .../1-find-non-negative-integers/task.md | 1 + 1 file changed, 1 insertion(+) diff --git a/9-regular-expressions/14-regexp-lookahead-lookbehind/1-find-non-negative-integers/task.md b/9-regular-expressions/14-regexp-lookahead-lookbehind/1-find-non-negative-integers/task.md index 85ec5c752..1b0cc33ce 100644 --- a/9-regular-expressions/14-regexp-lookahead-lookbehind/1-find-non-negative-integers/task.md +++ b/9-regular-expressions/14-regexp-lookahead-lookbehind/1-find-non-negative-integers/task.md @@ -1,3 +1,4 @@ + # Знайдіть цілі невід'ємні числа Дано рядок з цілих чисел. From 0587094711b2b17d659663731bdc7a927b4d953c Mon Sep 17 00:00:00 2001 From: Mariana Melnychenko <110090508+MrsMelnychenko@users.noreply.github.com> Date: Fri, 6 Jan 2023 19:13:59 +0200 Subject: [PATCH 08/11] Update task.md --- .../1-find-non-negative-integers/task.md | 1 - 1 file changed, 1 deletion(-) diff --git a/9-regular-expressions/14-regexp-lookahead-lookbehind/1-find-non-negative-integers/task.md b/9-regular-expressions/14-regexp-lookahead-lookbehind/1-find-non-negative-integers/task.md index 1b0cc33ce..85ec5c752 100644 --- a/9-regular-expressions/14-regexp-lookahead-lookbehind/1-find-non-negative-integers/task.md +++ b/9-regular-expressions/14-regexp-lookahead-lookbehind/1-find-non-negative-integers/task.md @@ -1,4 +1,3 @@ - # Знайдіть цілі невід'ємні числа Дано рядок з цілих чисел. From 6d90c0ff20d93450f1d9847788aa3e2f71d7d681 Mon Sep 17 00:00:00 2001 From: Mariana Melnychenko <110090508+MrsMelnychenko@users.noreply.github.com> Date: Fri, 6 Jan 2023 19:14:42 +0200 Subject: [PATCH 09/11] Update solution.md --- .../1-find-non-negative-integers/solution.md | 1 + 1 file changed, 1 insertion(+) diff --git a/9-regular-expressions/14-regexp-lookahead-lookbehind/1-find-non-negative-integers/solution.md b/9-regular-expressions/14-regexp-lookahead-lookbehind/1-find-non-negative-integers/solution.md index fe67ab4aa..20ef9543c 100644 --- a/9-regular-expressions/14-regexp-lookahead-lookbehind/1-find-non-negative-integers/solution.md +++ b/9-regular-expressions/14-regexp-lookahead-lookbehind/1-find-non-negative-integers/solution.md @@ -1,3 +1,4 @@ + Регулярний вираз для цілого числа `pattern:\d+`. Ми можемо виключити від'ємні числа попередньо написавши регулярний вираз для негативного перегляду назад: `pattern:(? Date: Sun, 12 Mar 2023 21:28:37 +0200 Subject: [PATCH 10/11] Apply suggestions from code review --- .../1-find-non-negative-integers/solution.md | 8 +-- .../1-find-non-negative-integers/task.md | 2 +- .../2-insert-after-head/solution.md | 10 +-- .../2-insert-after-head/task.md | 2 +- .../14-regexp-lookahead-lookbehind/article.md | 62 +++++++++---------- 5 files changed, 42 insertions(+), 42 deletions(-) diff --git a/9-regular-expressions/14-regexp-lookahead-lookbehind/1-find-non-negative-integers/solution.md b/9-regular-expressions/14-regexp-lookahead-lookbehind/1-find-non-negative-integers/solution.md index 20ef9543c..1c9408c67 100644 --- a/9-regular-expressions/14-regexp-lookahead-lookbehind/1-find-non-negative-integers/solution.md +++ b/9-regular-expressions/14-regexp-lookahead-lookbehind/1-find-non-negative-integers/solution.md @@ -1,7 +1,7 @@ Регулярний вираз для цілого числа `pattern:\d+`. -Ми можемо виключити від'ємні числа попередньо написавши регулярний вираз для негативного перегляду назад: `pattern:(?` , нам потрібно спершу його знайти. Ми можемо використати для цього шаблон регулярного виразу `pattern:`. +Щоб вставити після тегу `` , нам потрібно спершу його знайти. Ми можемо використати для цього регулярний вираз `pattern:`. в цьому завданні нам не потрібно змінювати тег ``. Нам потрібно тільки додати текст після нього. @@ -13,19 +13,19 @@ alert(str); // ...

Привіт

... в заміненому рядку `$&` означає співпадіння саме по собі, тобто, частина вихідного тексту яка відповідає шаблону `pattern:`. Її замінено на неї ж плюс `

Привіт

`. -Альнернативою було би використання перегляду назад: +Альнернативою було би використання зворотньої перевірки: ```js run let str = '......'; str = str.replace(/(?<=)/, `

Привіт

`); -alert(str); // ...

привіт

... +alert(str); // ...

Привіт

... ``` Як бачите, є тільки перегляд назад у цьому регулярному виразі. -It works like this: -- At every position in the text. +Це працює таким чином: +- На кожній позиції в тексті. - Check if it's preceeded by `pattern:`. - If it's so then we have the match. diff --git a/9-regular-expressions/14-regexp-lookahead-lookbehind/2-insert-after-head/task.md b/9-regular-expressions/14-regexp-lookahead-lookbehind/2-insert-after-head/task.md index 8e2ab6b47..05b42daf7 100644 --- a/9-regular-expressions/14-regexp-lookahead-lookbehind/2-insert-after-head/task.md +++ b/9-regular-expressions/14-regexp-lookahead-lookbehind/2-insert-after-head/task.md @@ -1,4 +1,4 @@ -# Додайте після тегу Head +# Вставка після Head У нас є рядок з HTML-документом. diff --git a/9-regular-expressions/14-regexp-lookahead-lookbehind/article.md b/9-regular-expressions/14-regexp-lookahead-lookbehind/article.md index e6c7f197f..98b8604d2 100644 --- a/9-regular-expressions/14-regexp-lookahead-lookbehind/article.md +++ b/9-regular-expressions/14-regexp-lookahead-lookbehind/article.md @@ -1,12 +1,12 @@ -# Перегляд уперед та назад +# Перевірка уперед та назад Іноді, нам потрібно знайти тільки такі співпадіння з шаблоном, за якими слідує, або яким передує інший шаблон. -Для цього існують спеціальні синтаксичні конструкції, котрі називається "перегляд уперед" та "перегляд назад". +Для цього існують спеціальні синтаксичні конструкції, котрі називається "перевірка уперед" та "перевірка назад". Для початку, давайте знайдемо ціну у рядку `subject:1 індичка коштує 30€`. Маємо: число, за яким йде символ `subject:€`. -## Перегляд уперед +## Перевірка уперед Синтаксис виглядає наступнм чином: `pattern:X(?=Y)`, це означає "шукай `pattern:X`, але вважай його співпадінням, тільки якщо за ним слідує `pattern:Y`". Замість `pattern:X` та `pattern:Y` можуть бути будь-які інші шаблони. @@ -18,7 +18,7 @@ let str = "1 індичка коштує 30€"; alert( str.match(/\d+(?=€)/) ); // 30, число 1 ігнорується, оскільки після нього не стоїть символ € ``` -Зверніть увагу: Перегляд уперед це свого роду тест, вміст в дужках `pattern:(?=...)` не входить до відображуваного регулярним виразом співпадіння `match:30`. +Зверніть увагу: перевірка уперед це свого роду тест, вміст в дужках `pattern:(?=...)` не входить до відображуваного регулярним виразом співпадіння `match:30`. Коли ми шукаємо `pattern:X(?=Y)`, регулярний вираз знаходить `pattern:X` і далі перевіряє наявність `pattern:Y` одразу після нього. Якщо це не так, тоді потенційне співпадіння пропускається і регулярний вираз продовжує пошук. @@ -26,14 +26,14 @@ alert( str.match(/\d+(?=€)/) ); // 30, число 1 ігнорується, о 1. Знайди `pattern:X`. 2. Перевір, чи `pattern:Y` йде одразу після `pattern:X` (пропускай, якщо це не так). -3. Перевір, чи `pattern:Z` також йде одразу пысля `pattern:X` (пропускай, якщо це не так). -4. Якщо обидва тести пройдено, тоді `pattern:X` відповідає умовам пошуку, в інщому випадку - продовжуй пошук. +3. Перевір, чи `pattern:Z` також йде одразу після `pattern:X` (пропускай, якщо це не так). +4. Якщо обидва тести пройдено, тоді `pattern:X` відповідає умовам пошуку, в інщому випадку -- продовжуй пошук. Інакше кажучи, такий шаблон означає, що ми шукаємо на `pattern:X` за яким одночасно слідують `pattern:Y` та `pattern:Z`. -Це можливо тільки за умови, якщо шаблон `pattern:Y` та `pattern:Z` не взаємовиключні. +Це можливо тільки за умови, якщо шаблон `pattern:Y` та `pattern:Z` не виключають один одного. -До прикладу, `pattern:\d+(?=\s)(?=.*30)` шукає на `pattern:\d+` за яким йде пробільний символ `pattern:(?=\s)`, а також `30` десь після нього `pattern:(?=.*30)`: +Наприклад, `pattern:\d+(?=\s)(?=.*30)` шукає на `pattern:\d+` за яким йде пробільний символ `pattern:(?=\s)`, а також `30` десь після нього `pattern:(?=.*30)`: ```js run let str = "1 індичка коштує 30€"; @@ -43,13 +43,13 @@ alert( str.match(/\d+(?=\s)(?=.*30)/) ); // 1 В нашому рядку цим параметрам повністю відповідає число `1`. -## Негативний перегляд уперед +## Негативна перевірка уперед Скажімо, ми хочем знайти кількість, а не ціну в тому самому рядку. Тобто, шукаємо число `pattern:\d+`, за якийм НЕ слідує `subject:€`. В такому випадку, доречним буде використання негативного перегляду уперед. -Синатксис виглядає наступним чином: `pattern:X(?!Y)`, і означає "шукай `pattern:X`, але за умови, що після нього не йде `pattern:Y`". +Синтаксис виглядає наступним чином: `pattern:X(?!Y)`, і означає "шукай `pattern:X`, але за умови, що після нього не йде `pattern:Y`". ```js run let str = "2 індички коштують 60€"; @@ -57,21 +57,21 @@ let str = "2 індички коштують 60€"; alert( str.match(/\d+\b(?!€)/g) ); // 2 (ціна не відповідає вимогам шаблону і не відображається в результаті) ``` -## Перегляд назад +## Перевірка назад -```warn header="Сумісність браузерів з переглядом назад" -Зверніть увагу: Перегляд назад не підтримується в браузерах з відміннимим від V8 двигунами, зокрема Safari, Internet Explorer. +```warn header="Сумісність браузерів з перевіркою назад" +Зверніть увагу: Перевірка назад не підтримується в браузерах з відміннимим від V8 двигунами, зокрема Safari, Internet Explorer. ``` -Перегляд уперед дозволяє додати умову на кшталт "те, що слідує після". +Перевірка уперед дозволяє додати умову на кшталт "те, що слідує після". -Перегляд назад подібний, але дивиться у зворотньому напрямку. Таким чином, він виводить результат, тільки якщо співпадає і шаблон і те, що йде до нього. +Перевірка назад подібна, але дивиться у зворотньому напрямку. Таким чином, вона видає результат, тільки якщо співпадає і шаблон і те, що йде до нього. Синтаксис наступний: -- Позитивний перегляд назад: `pattern:(?<=Y)X`, співпадає з `pattern:X`, тільки за умови, якщо перед ним є `pattern:Y`. -- Негативний перегляд назад: `pattern:(? Date: Sun, 12 Mar 2023 21:29:21 +0200 Subject: [PATCH 11/11] Apply suggestions from code review --- .../2-insert-after-head/solution.md | 2 +- 9-regular-expressions/14-regexp-lookahead-lookbehind/article.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/9-regular-expressions/14-regexp-lookahead-lookbehind/2-insert-after-head/solution.md b/9-regular-expressions/14-regexp-lookahead-lookbehind/2-insert-after-head/solution.md index 6e922159d..108d5f78b 100644 --- a/9-regular-expressions/14-regexp-lookahead-lookbehind/2-insert-after-head/solution.md +++ b/9-regular-expressions/14-regexp-lookahead-lookbehind/2-insert-after-head/solution.md @@ -22,7 +22,7 @@ str = str.replace(/(?<=)/, `

Привіт

`); alert(str); // ...

Привіт

... ``` -Як бачите, є тільки перегляд назад у цьому регулярному виразі. +Як бачите, в цьому регулярному виразі є тільки зворотня перевірка. Це працює таким чином: - На кожній позиції в тексті. diff --git a/9-regular-expressions/14-regexp-lookahead-lookbehind/article.md b/9-regular-expressions/14-regexp-lookahead-lookbehind/article.md index 98b8604d2..d6dd00cfe 100644 --- a/9-regular-expressions/14-regexp-lookahead-lookbehind/article.md +++ b/9-regular-expressions/14-regexp-lookahead-lookbehind/article.md @@ -47,7 +47,7 @@ alert( str.match(/\d+(?=\s)(?=.*30)/) ); // 1 Скажімо, ми хочем знайти кількість, а не ціну в тому самому рядку. Тобто, шукаємо число `pattern:\d+`, за якийм НЕ слідує `subject:€`. -В такому випадку, доречним буде використання негативного перегляду уперед. +В такому випадку, доречним буде використання негативної перевірки уперед. Синтаксис виглядає наступним чином: `pattern:X(?!Y)`, і означає "шукай `pattern:X`, але за умови, що після нього не йде `pattern:Y`". pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy