From 5b4e7c887a5e11c159eea8a5cbef6bb461de087a Mon Sep 17 00:00:00 2001 From: vitaliimalynka Date: Sun, 27 Nov 2022 21:08:56 +0200 Subject: [PATCH 1/7] Word boundary: \b --- .../1-find-time-hh-mm/solution.md | 4 +- .../1-find-time-hh-mm/task.md | 10 ++--- .../06-regexp-boundary/article.md | 38 +++++++++---------- 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/9-regular-expressions/06-regexp-boundary/1-find-time-hh-mm/solution.md b/9-regular-expressions/06-regexp-boundary/1-find-time-hh-mm/solution.md index 829eda13e..3cb5921b5 100644 --- a/9-regular-expressions/06-regexp-boundary/1-find-time-hh-mm/solution.md +++ b/9-regular-expressions/06-regexp-boundary/1-find-time-hh-mm/solution.md @@ -1,6 +1,6 @@ -The answer: `pattern:\b\d\d:\d\d\b`. +Відповідь: `pattern:\b\d\d:\d\d\b`. ```js run -alert( "Breakfast at 09:00 in the room 123:456.".match( /\b\d\d:\d\d\b/ ) ); // 09:00 +alert( "Сніданок о 09:00 в кімнаті 123:456.".match( /\b\d\d:\d\d\b/ ) ); // 09:00 ``` diff --git a/9-regular-expressions/06-regexp-boundary/1-find-time-hh-mm/task.md b/9-regular-expressions/06-regexp-boundary/1-find-time-hh-mm/task.md index 95ab5777d..706210cdc 100644 --- a/9-regular-expressions/06-regexp-boundary/1-find-time-hh-mm/task.md +++ b/9-regular-expressions/06-regexp-boundary/1-find-time-hh-mm/task.md @@ -1,9 +1,9 @@ -# Find the time +# Знайдіть час -The time has a format: `hours:minutes`. Both hours and minutes has two digits, like `09:00`. +Час відповідає формату: `години:хвилини`. І години, і хвилини мають по дві цифри, наприклад, `09:00`. -Make a regexp to find time in the string: `subject:Breakfast at 09:00 in the room 123:456.` +Створіть регулярний вираз для пошуку часу у рядку : `subject:Сніданок о 09:00 в кімнаті 123:456.` -P.S. In this task there's no need to check time correctness yet, so `25:99` can also be a valid result. +P.S. У цьому випадку немає потреби перевіряти правильність часу, тому `25:99` також може бути правильним результатом пошуку. -P.P.S. The regexp shouldn't match `123:456`. +P.P.S. Регулярний вираз не повинен знаходити `123:456`. diff --git a/9-regular-expressions/06-regexp-boundary/article.md b/9-regular-expressions/06-regexp-boundary/article.md index 06b5ac9f7..6a5c04f88 100644 --- a/9-regular-expressions/06-regexp-boundary/article.md +++ b/9-regular-expressions/06-regexp-boundary/article.md @@ -1,33 +1,33 @@ -# Word boundary: \b +# Межа слова: \b -A word boundary `pattern:\b` is a test, just like `pattern:^` and `pattern:$`. +Межа слова `pattern:\b` - це така ж сама перевірка як і `pattern:^` та `pattern:$`. -When the regexp engine (program module that implements searching for regexps) comes across `pattern:\b`, it checks that the position in the string is a word boundary. +Коли механізм регулярних виразів (програмний модуль, який здійснює пошук регулярних виразів) стикається з `pattern:\b`, він перевіряє, чи є позиція в рядку межею слова. -There are three different positions that qualify as word boundaries: +Є три різні позиції, які кваліфікуються як межі слова: -- At string start, if the first string character is a word character `pattern:\w`. -- Between two characters in the string, where one is a word character `pattern:\w` and the other is not. -- At string end, if the last string character is a word character `pattern:\w`. +- На початку рядка, якщо його перший символ представляє собою буквенний символ `pattern:\w`. +- Між двома символами в рядку, де один є буквенним символом `pattern:\w`, а інший - ні. +- В кінці рядка, якщо його останній символ представляє собою буквенний символ `pattern:\w`. -For instance, regexp `pattern:\bJava\b` will be found in `subject:Hello, Java!`, where `subject:Java` is a standalone word, but not in `subject:Hello, JavaScript!`. +Наприклад, регулярний вираз `pattern:\bJava\b` буде знайдено в `subject:Hello, Java!`, де `subject:Java` - окреме слово, але не буде знайдено в `subject:Hello, JavaScript!`. ```js run alert( "Hello, Java!".match(/\bJava\b/) ); // Java alert( "Hello, JavaScript!".match(/\bJava\b/) ); // null ``` -In the string `subject:Hello, Java!` following positions correspond to `pattern:\b`: +У рядку `subject:Hello, Java!` наступні позиції будуть відповідати межам слова `pattern:\b`: ![](hello-java-boundaries.svg) -So, it matches the pattern `pattern:\bHello\b`, because: +Виходить, що воно відповідає шаблону `pattern:\bHello\b` за наступними критеріями: -1. At the beginning of the string matches the first test `pattern:\b`. -2. Then matches the word `pattern:Hello`. -3. Then the test `pattern:\b` matches again, as we're between `subject:o` and a comma. +1. На початку рядка відповідає першій перевірці `pattern:\b`. +2. Потім відповідає цілому слову `pattern:Hello`. +3. І, накінець, перевірка `pattern:\b` також збігається, оскільки ми знаходемось між символом `subject:o` і комою. -So the pattern `pattern:\bHello\b` would match, but not `pattern:\bHell\b` (because there's no word boundary after `l`) and not `Java!\b` (because the exclamation sign is not a wordly character `pattern:\w`, so there's no word boundary after it). +Отже, шаблон `pattern:\bHello\b` буде збігатися, при цьому, `pattern:\bHell\b` - ні (оскільки немає закінчення слова після символу `l`), а також не буде збігатися `pattern:Java!\b` (оскільки знак оклику не буквенний символ `pattern:\w`, тому після нього немає й межі слова). ```js run alert( "Hello, Java!".match(/\bHello\b/) ); // Hello @@ -36,17 +36,17 @@ alert( "Hello, Java!".match(/\bHell\b/) ); // null (no match) alert( "Hello, Java!".match(/\bJava!\b/) ); // null (no match) ``` -We can use `pattern:\b` not only with words, but with digits as well. +Ми можемо використовувати `pattern:\b` не тільки зі словами, а й з цифрами. -For example, the pattern `pattern:\b\d\d\b` looks for standalone 2-digit numbers. In other words, it looks for 2-digit numbers that are surrounded by characters different from `pattern:\w`, such as spaces or punctuation (or text start/end). +Наприклад, шаблон `pattern:\b\d\d\b` шукає окремі двозначні числа. Іншими словами, він шукає двозначні числа, які оточені символами, відмінними від буквенних `pattern:\w`, такі як пробіли чи знаки пунктуації (чи початок/кінець тексту). ```js run alert( "1 23 456 78".match(/\b\d\d\b/g) ); // 23,78 alert( "12,34,56".match(/\b\d\d\b/g) ); // 12,34,56 ``` -```warn header="Word boundary `pattern:\b` doesn't work for non-latin alphabets" -The word boundary test `pattern:\b` checks that there should be `pattern:\w` on the one side from the position and "not `pattern:\w`" - on the other side. +```warn header="Межа слова `pattern:\b` не працює з алфавітами, відмінними від латинського" +Перевірка межі слова `pattern:\b` звіряє чи є `pattern:\w` з однієї сторони і "не `pattern:\w`" - з іншої. -But `pattern:\w` means a latin letter `a-z` (or a digit or an underscore), so the test doesn't work for other characters, e.g. cyrillic letters or hieroglyphs. +Але `pattern:\w` позначає латинську літеру `a-z` (або цифру чи нижнє підкреслення), тому перевірка не працює для інших символів, наприклад, кирилиці чи ієрогліфів. ``` From 9e9afbc26de22b7f4e7c06e8e984cb967bf31eef Mon Sep 17 00:00:00 2001 From: Vitalii Malynka Date: Sun, 11 Dec 2022 18:01:15 +0200 Subject: [PATCH 2/7] Update 9-regular-expressions/06-regexp-boundary/article.md Co-authored-by: Stanislav --- 9-regular-expressions/06-regexp-boundary/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/9-regular-expressions/06-regexp-boundary/article.md b/9-regular-expressions/06-regexp-boundary/article.md index 6a5c04f88..1b5aad6d3 100644 --- a/9-regular-expressions/06-regexp-boundary/article.md +++ b/9-regular-expressions/06-regexp-boundary/article.md @@ -1,6 +1,6 @@ # Межа слова: \b -Межа слова `pattern:\b` - це така ж сама перевірка як і `pattern:^` та `pattern:$`. +Межа слова `pattern:\b` -- це така ж сама перевірка як і `pattern:^` та `pattern:$`. Коли механізм регулярних виразів (програмний модуль, який здійснює пошук регулярних виразів) стикається з `pattern:\b`, він перевіряє, чи є позиція в рядку межею слова. From 06b9d9ebe7903254ecabc7d71f01658b9b232ad7 Mon Sep 17 00:00:00 2001 From: Vitalii Malynka Date: Sun, 11 Dec 2022 18:03:11 +0200 Subject: [PATCH 3/7] Update 9-regular-expressions/06-regexp-boundary/article.md Co-authored-by: Stanislav --- 9-regular-expressions/06-regexp-boundary/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/9-regular-expressions/06-regexp-boundary/article.md b/9-regular-expressions/06-regexp-boundary/article.md index 1b5aad6d3..1244cfce6 100644 --- a/9-regular-expressions/06-regexp-boundary/article.md +++ b/9-regular-expressions/06-regexp-boundary/article.md @@ -7,7 +7,7 @@ Є три різні позиції, які кваліфікуються як межі слова: - На початку рядка, якщо його перший символ представляє собою буквенний символ `pattern:\w`. -- Між двома символами в рядку, де один є буквенним символом `pattern:\w`, а інший - ні. +- Між двома символами в рядку, де один є буквенним символом `pattern:\w`, а інший -- ні. - В кінці рядка, якщо його останній символ представляє собою буквенний символ `pattern:\w`. Наприклад, регулярний вираз `pattern:\bJava\b` буде знайдено в `subject:Hello, Java!`, де `subject:Java` - окреме слово, але не буде знайдено в `subject:Hello, JavaScript!`. From 2d757487e9c76265d9f3fcde11a4a2be30474977 Mon Sep 17 00:00:00 2001 From: Vitalii Malynka Date: Sun, 11 Dec 2022 18:03:26 +0200 Subject: [PATCH 4/7] Update 9-regular-expressions/06-regexp-boundary/article.md Co-authored-by: Stanislav --- 9-regular-expressions/06-regexp-boundary/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/9-regular-expressions/06-regexp-boundary/article.md b/9-regular-expressions/06-regexp-boundary/article.md index 1244cfce6..eb3259a69 100644 --- a/9-regular-expressions/06-regexp-boundary/article.md +++ b/9-regular-expressions/06-regexp-boundary/article.md @@ -10,7 +10,7 @@ - Між двома символами в рядку, де один є буквенним символом `pattern:\w`, а інший -- ні. - В кінці рядка, якщо його останній символ представляє собою буквенний символ `pattern:\w`. -Наприклад, регулярний вираз `pattern:\bJava\b` буде знайдено в `subject:Hello, Java!`, де `subject:Java` - окреме слово, але не буде знайдено в `subject:Hello, JavaScript!`. +Наприклад, регулярний вираз `pattern:\bJava\b` буде знайдено в `subject:Hello, Java!`, де `subject:Java` -- окреме слово, але не буде знайдено в `subject:Hello, JavaScript!`. ```js run alert( "Hello, Java!".match(/\bJava\b/) ); // Java From cb4addcf20945f1d2e6a0fca487a784462b8cb12 Mon Sep 17 00:00:00 2001 From: Vitalii Malynka Date: Sun, 11 Dec 2022 18:05:53 +0200 Subject: [PATCH 5/7] Update 9-regular-expressions/06-regexp-boundary/article.md Co-authored-by: Stanislav --- 9-regular-expressions/06-regexp-boundary/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/9-regular-expressions/06-regexp-boundary/article.md b/9-regular-expressions/06-regexp-boundary/article.md index eb3259a69..18b67a859 100644 --- a/9-regular-expressions/06-regexp-boundary/article.md +++ b/9-regular-expressions/06-regexp-boundary/article.md @@ -27,7 +27,7 @@ alert( "Hello, JavaScript!".match(/\bJava\b/) ); // null 2. Потім відповідає цілому слову `pattern:Hello`. 3. І, накінець, перевірка `pattern:\b` також збігається, оскільки ми знаходемось між символом `subject:o` і комою. -Отже, шаблон `pattern:\bHello\b` буде збігатися, при цьому, `pattern:\bHell\b` - ні (оскільки немає закінчення слова після символу `l`), а також не буде збігатися `pattern:Java!\b` (оскільки знак оклику не буквенний символ `pattern:\w`, тому після нього немає й межі слова). +Отже, шаблон `pattern:\bHello\b` буде збігатися, при цьому, `pattern:\bHell\b` -- ні (оскільки немає закінчення слова після символу `l`), а також не буде збігатися `pattern:Java!\b` (оскільки знак оклику не буквенний символ `pattern:\w`, тому після нього немає й межі слова). ```js run alert( "Hello, Java!".match(/\bHello\b/) ); // Hello From dce2efdfeaa32e0240e9b6b347ee7d9ba93dae66 Mon Sep 17 00:00:00 2001 From: Vitalii Malynka Date: Sun, 11 Dec 2022 18:07:22 +0200 Subject: [PATCH 6/7] Update 9-regular-expressions/06-regexp-boundary/article.md Co-authored-by: Stanislav --- 9-regular-expressions/06-regexp-boundary/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/9-regular-expressions/06-regexp-boundary/article.md b/9-regular-expressions/06-regexp-boundary/article.md index 18b67a859..900aba2bc 100644 --- a/9-regular-expressions/06-regexp-boundary/article.md +++ b/9-regular-expressions/06-regexp-boundary/article.md @@ -25,7 +25,7 @@ alert( "Hello, JavaScript!".match(/\bJava\b/) ); // null 1. На початку рядка відповідає першій перевірці `pattern:\b`. 2. Потім відповідає цілому слову `pattern:Hello`. -3. І, накінець, перевірка `pattern:\b` також збігається, оскільки ми знаходемось між символом `subject:o` і комою. +3. І урешті-решт перевірка `pattern:\b` також збігається, оскільки ми знаходемось між символом `subject:o` і комою. Отже, шаблон `pattern:\bHello\b` буде збігатися, при цьому, `pattern:\bHell\b` -- ні (оскільки немає закінчення слова після символу `l`), а також не буде збігатися `pattern:Java!\b` (оскільки знак оклику не буквенний символ `pattern:\w`, тому після нього немає й межі слова). From 3c84a1794e61ddced6785f14840b8b9aeb759577 Mon Sep 17 00:00:00 2001 From: Vitalii Malynka Date: Sun, 11 Dec 2022 18:24:12 +0200 Subject: [PATCH 7/7] fixed bug, added commas and cuteness of the word --- 9-regular-expressions/06-regexp-boundary/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/9-regular-expressions/06-regexp-boundary/article.md b/9-regular-expressions/06-regexp-boundary/article.md index 900aba2bc..587cf2e9e 100644 --- a/9-regular-expressions/06-regexp-boundary/article.md +++ b/9-regular-expressions/06-regexp-boundary/article.md @@ -25,7 +25,7 @@ alert( "Hello, JavaScript!".match(/\bJava\b/) ); // null 1. На початку рядка відповідає першій перевірці `pattern:\b`. 2. Потім відповідає цілому слову `pattern:Hello`. -3. І урешті-решт перевірка `pattern:\b` також збігається, оскільки ми знаходемось між символом `subject:o` і комою. +3. І, врешті-решт, перевірка `pattern:\b` також збігається, оскільки ми знаходимось між символом `subject:o` і комою. Отже, шаблон `pattern:\bHello\b` буде збігатися, при цьому, `pattern:\bHell\b` -- ні (оскільки немає закінчення слова після символу `l`), а також не буде збігатися `pattern:Java!\b` (оскільки знак оклику не буквенний символ `pattern:\w`, тому після нього немає й межі слова). 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