From 3af52c4e53ffd82cc90f386f47a7b6cc4ee5f689 Mon Sep 17 00:00:00 2001 From: Daria Bromot <80320446+bromotdi@users.noreply.github.com> Date: Sun, 14 May 2023 18:39:46 +0300 Subject: [PATCH 1/3] feat: translate en to uk --- .../05-regexp-multiline-mode/article.md | 94 +++++++++---------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/9-regular-expressions/05-regexp-multiline-mode/article.md b/9-regular-expressions/05-regexp-multiline-mode/article.md index 82f4d781d..6d99e467d 100644 --- a/9-regular-expressions/05-regexp-multiline-mode/article.md +++ b/9-regular-expressions/05-regexp-multiline-mode/article.md @@ -1,87 +1,87 @@ -# Multiline mode of anchors ^ $, flag "m" +# Багаторядковий режим якорів ^ $, прапора "m" -The multiline mode is enabled by the flag `pattern:m`. +Багаторядковий режим включається прапором `pattern:m`. -It only affects the behavior of `pattern:^` and `pattern:$`. +Він впливає лише на поведінку `pattern:^` та `pattern:$`. -In the multiline mode they match not only at the beginning and the end of the string, but also at start/end of line. +У багаторядковому режимі вони збігаються не тільки на початку та в кінці тексту, а й на початку/кінці кожного рядка у тексті. -## Searching at line start ^ +## Пошук на початку рядка ^ -In the example below the text has multiple lines. The pattern `pattern:/^\d/gm` takes a digit from the beginning of each line: +У прикладі нижче текст складається з кількох рядків. Шаблон `pattern:/^\d/gm` бере цифру з початку кожного рядка: -```js run -let str = `1st place: Winnie -2nd place: Piglet -3rd place: Eeyore`; +``js run +let str = `1 місце: Вінні-Пух +2 місце: Паць +3 місце: Слонопотам`; *!* console.log( str.match(/^\d/gm) ); // 1, 2, 3 */!* -``` +```` -Without the flag `pattern:m` only the first digit is matched: +Без прапора `pattern:m` було б знайдено лише перше число: -```js run -let str = `1st place: Winnie -2nd place: Piglet -3rd place: Eeyore`; +``js run +let str = `1 місце: Вінні +2 місце: Паць +3 місце: Слонопотам; *!* console.log( str.match(/^\d/g) ); // 1 */!* -``` +```` -That's because by default a caret `pattern:^` only matches at the beginning of the text, and in the multiline mode -- at the start of any line. +Це тому, що за замовчуванням каретка `pattern:^` збігається лише на початку тексту, а в багаторядковому режимі -- на початку будь-якого рядка. -```smart -"Start of a line" formally means "immediately after a line break": the test `pattern:^` in multiline mode matches at all positions preceded by a newline character `\n`. +``smart +"Початок рядка" формально означає "відразу після розриву рядка": тестовий `pattern:^` у багаторядковому режимі збігається в усіх позиціях, яким передує символ нового рядка `\n`. -And at the text start. -``` +І на початку тексту. +```` -## Searching at line end $ +## Пошук у кінці рядка $ -The dollar sign `pattern:$` behaves similarly. +Символ долара `pattern:$` поводиться аналогічно. -The regular expression `pattern:\d$` finds the last digit in every line +Регулярний вираз `pattern:\d$` шукає останню цифру у кожному рядку -```js run -let str = `Winnie: 1 -Piglet: 2 -Eeyore: 3`; +``js run +let str = `Вінні: 1 +Паць: 2 +Слонопотам: 3`; console.log( str.match(/\d$/gm) ); // 1,2,3 -``` +```` -Without the flag `pattern:m`, the dollar `pattern:$` would only match the end of the whole text, so only the very last digit would be found. +Без прапора `pattern:m` якір `pattern:$` відповідатиме лише кінці всього тексту, тому буде знайдено лише останню цифру. ```smart -"End of a line" formally means "immediately before a line break": the test `pattern:$` in multiline mode matches at all positions succeeded by a newline character `\n`. +"Кінець рядка" формально означає "безпосередньо перед розривом рядка": тестовий `pattern:$` у багаторядковому режимі збігається в усіх позиціях після символу нового рядка `\n`. -And at the text end. +І в кінці тексту. ``` -## Searching for \n instead of ^ $ +## Шукаємо \n замість ^ $ -To find a newline, we can use not only anchors `pattern:^` and `pattern:$`, but also the newline character `\n`. +Щоб знайти кінець рядка, можна використовувати як якоря `pattern:^` і `pattern:$`, а й символ перекладу рядка `\n`. -What's the difference? Let's see an example. +В чому різниця? Подивімось на приклад. -Here we search for `pattern:\d\n` instead of `pattern:\d$`: +Тут ми шукаємо `pattern:\d\n` замість `pattern:\d$`: -```js run -let str = `Winnie: 1 -Piglet: 2 -Eeyore: 3`; +``js run +let str = `Вінні: 1 +Паць: 2 +Слонопотам: 3`; -console.log( str.match(/\d\n/g) ); // 1\n,2\n -``` +console.log(str.match(/\d\n/g)); // 1\n,2\n +```` -As we can see, there are 2 matches instead of 3. +Як бачимо, 2 збіги замість 3-х. -That's because there's no newline after `subject:3` (there's text end though, so it matches `pattern:$`). +Це тому, що після `subject:3` немає нового рядка (хоча є кінець тексту, тому він відповідає `pattern:$`). -Another difference: now every match includes a newline character `match:\n`. Unlike the anchors `pattern:^` `pattern:$`, that only test the condition (start/end of a line), `\n` is a character, so it becomes a part of the result. +Ще одна відмінність: тепер кожен збіг містить символ нового рядка `match:\n`. На відміну від якорів `pattern:^` `pattern:$`, які лише перевіряють умову (початок/кінець рядка), `\n` є символом, тому він стає частиною результату. -So, a `\n` in the pattern is used when we need newline characters in the result, while anchors are used to find something at the beginning/end of a line. +Отже, `\n` у шаблоні використовується, коли нам потрібні символи нового рядка в результаті, тоді як якорі використовуються, щоб знайти щось на початку/кінці рядка. From 99b7fb818bdbdda89e6bb7a1363d1e6cb02fab1f Mon Sep 17 00:00:00 2001 From: Daria Bromot <80320446+bromotdi@users.noreply.github.com> Date: Sun, 14 May 2023 18:59:48 +0300 Subject: [PATCH 2/3] fix: add ` --- .../05-regexp-multiline-mode/article.md | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/9-regular-expressions/05-regexp-multiline-mode/article.md b/9-regular-expressions/05-regexp-multiline-mode/article.md index 6d99e467d..860c52265 100644 --- a/9-regular-expressions/05-regexp-multiline-mode/article.md +++ b/9-regular-expressions/05-regexp-multiline-mode/article.md @@ -10,7 +10,7 @@ У прикладі нижче текст складається з кількох рядків. Шаблон `pattern:/^\d/gm` бере цифру з початку кожного рядка: -``js run +```js run let str = `1 місце: Вінні-Пух 2 місце: Паць 3 місце: Слонопотам`; @@ -18,11 +18,11 @@ let str = `1 місце: Вінні-Пух *!* console.log( str.match(/^\d/gm) ); // 1, 2, 3 */!* -```` +``` Без прапора `pattern:m` було б знайдено лише перше число: -``js run +```js run let str = `1 місце: Вінні 2 місце: Паць 3 місце: Слонопотам; @@ -30,15 +30,15 @@ let str = `1 місце: Вінні *!* console.log( str.match(/^\d/g) ); // 1 */!* -```` +``` -Це тому, що за замовчуванням каретка `pattern:^` збігається лише на початку тексту, а в багаторядковому режимі -- на початку будь-якого рядка. +Це тому, що за замовчуванням карет `pattern:^` збігається лише на початку тексту, а в багаторядковому режимі -- на початку будь-якого рядка. -``smart +```smart "Початок рядка" формально означає "відразу після розриву рядка": тестовий `pattern:^` у багаторядковому режимі збігається в усіх позиціях, яким передує символ нового рядка `\n`. І на початку тексту. -```` +``` ## Пошук у кінці рядка $ @@ -46,13 +46,13 @@ console.log( str.match(/^\d/g) ); // 1 Регулярний вираз `pattern:\d$` шукає останню цифру у кожному рядку -``js run +```js run let str = `Вінні: 1 Паць: 2 Слонопотам: 3`; console.log( str.match(/\d$/gm) ); // 1,2,3 -```` +``` Без прапора `pattern:m` якір `pattern:$` відповідатиме лише кінці всього тексту, тому буде знайдено лише останню цифру. @@ -70,13 +70,13 @@ console.log( str.match(/\d$/gm) ); // 1,2,3 Тут ми шукаємо `pattern:\d\n` замість `pattern:\d$`: -``js run +```js run let str = `Вінні: 1 Паць: 2 Слонопотам: 3`; console.log(str.match(/\d\n/g)); // 1\n,2\n -```` +``` Як бачимо, 2 збіги замість 3-х. From fc92a9f78592fb557f7464f586da719092105298 Mon Sep 17 00:00:00 2001 From: Daria Bromot <80320446+bromotdi@users.noreply.github.com> Date: Sun, 14 May 2023 19:28:17 +0300 Subject: [PATCH 3/3] fix: edit line 23, 67, 83 --- .../05-regexp-multiline-mode/article.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/9-regular-expressions/05-regexp-multiline-mode/article.md b/9-regular-expressions/05-regexp-multiline-mode/article.md index 860c52265..e251a04fa 100644 --- a/9-regular-expressions/05-regexp-multiline-mode/article.md +++ b/9-regular-expressions/05-regexp-multiline-mode/article.md @@ -1,8 +1,8 @@ # Багаторядковий режим якорів ^ $, прапора "m" -Багаторядковий режим включається прапором `pattern:m`. +Багаторядковий режим вмикається прапором `pattern:m`. -Він впливає лише на поведінку `pattern:^` та `pattern:$`. +Це впливає лише на поведінку `pattern:^` і `pattern:$`. У багаторядковому режимі вони збігаються не тільки на початку та в кінці тексту, а й на початку/кінці кожного рядка у тексті. @@ -20,7 +20,7 @@ console.log( str.match(/^\d/gm) ); // 1, 2, 3 */!* ``` -Без прапора `pattern:m` було б знайдено лише перше число: +Без прапора `pattern:m` збігається лише перша цифра: ```js run let str = `1 місце: Вінні @@ -54,7 +54,7 @@ let str = `Вінні: 1 console.log( str.match(/\d$/gm) ); // 1,2,3 ``` -Без прапора `pattern:m` якір `pattern:$` відповідатиме лише кінці всього тексту, тому буде знайдено лише останню цифру. +Без прапора `pattern:m`, символ долара `pattern:$` відповідатиме лише кінці всього тексту, тому буде знайдено лише останню цифру. ```smart "Кінець рядка" формально означає "безпосередньо перед розривом рядка": тестовий `pattern:$` у багаторядковому режимі збігається в усіх позиціях після символу нового рядка `\n`. @@ -64,9 +64,9 @@ console.log( str.match(/\d$/gm) ); // 1,2,3 ## Шукаємо \n замість ^ $ -Щоб знайти кінець рядка, можна використовувати як якоря `pattern:^` і `pattern:$`, а й символ перекладу рядка `\n`. +Щоб знайти новий рядок, ми можемо використовувати не лише якорі `pattern:^` і `pattern:$`, а й символ нового рядка `\n`. -В чому різниця? Подивімось на приклад. +У чому різниця? Подивімось на приклад. Тут ми шукаємо `pattern:\d\n` замість `pattern:\d$`: @@ -75,12 +75,12 @@ let str = `Вінні: 1 Паць: 2 Слонопотам: 3`; -console.log(str.match(/\d\n/g)); // 1\n,2\n +console.log( str.match(/\d\n/g) ); // 1\n,2\n ``` Як бачимо, 2 збіги замість 3-х. -Це тому, що після `subject:3` немає нового рядка (хоча є кінець тексту, тому він відповідає `pattern:$`). +Це тому, що після `об'єкт:3` немає нового рядка (хоча є кінець тексту, тому він відповідає `pattern:$`). Ще одна відмінність: тепер кожен збіг містить символ нового рядка `match:\n`. На відміну від якорів `pattern:^` `pattern:$`, які лише перевіряють умову (початок/кінець рядка), `\n` є символом, тому він стає частиною результату.