Skip to content

Commit 2e24134

Browse files
authored
Merge pull request #421 from MrsMelnychenko/regex-sets
Sets and ranges [...]
2 parents 27ea846 + 4643079 commit 2e24134

File tree

9 files changed

+118
-118
lines changed

9 files changed

+118
-118
lines changed

9-regular-expressions/08-regexp-character-sets-and-ranges/1-find-range-1/solution.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
Answers: **no, yes**.
1+
Відповідь: **ні, так**.
22

3-
- In the script `subject:Java` it doesn't match anything, because `pattern:[^script]` means "any character except given ones". So the regexp looks for `"Java"` followed by one such symbol, but there's a string end, no symbols after it.
3+
- В скрипті `subject:Java` немає співпадінь, оскільки `pattern:[^script]` означає "пошук будь-яких символів окрім заданих". Тож регулярний вираз шукає `"Java"` за яким слідує один такий символ, але це кінець рядку і далі немає символів.
44

55
```js run
66
alert( "Java".match(/Java[^script]/) ); // null
77
```
8-
- Yes, because the `pattern:[^script]` part matches the character `"S"`. It's not one of `pattern:script`. As the regexp is case-sensitive (no `pattern:i` flag), it treats `"S"` as a different character from `"s"`.
8+
- Так, оскільки частина патерну `pattern:[^script]` співпадає з символом `"S"`. Його немає в переліку `pattern:script`. Бо регулярний вираз розрізняє регістри букв (не вказаний прапорець `pattern:i`), то для нього `"S"`та `"s"` це різні символи.
99

1010
```js run
1111
alert( "JavaScript".match(/Java[^script]/) ); // "JavaS"
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Java[^script]
22

3-
We have a regexp `pattern:/Java[^script]/`.
3+
У нас є регулярний вираз `pattern:/Java[^script]/`.
44

5-
Does it match anything in the string `subject:Java`? In the string `subject:JavaScript`?
5+
Чи знайде він співпадіння у рядку `subject:Java`? А у рядку `subject:JavaScript`?
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
Answer: `pattern:\d\d[-:]\d\d`.
1+
Відповідь: `pattern:\d\d[-:]\d\d`.
22

33
```js run
44
let regexp = /\d\d[-:]\d\d/g;
5-
alert( "Breakfast at 09:00. Dinner at 21-30".match(regexp) ); // 09:00, 21-30
5+
alert( "Сніданок о 09:00. Вечеря о 21-30".match(regexp) ); // 09:00, 21-30
66
```
77

8-
Please note that the dash `pattern:'-'` has a special meaning in square brackets, but only between other characters, not when it's in the beginning or at the end, so we don't need to escape it.
8+
Зверніть увагу, що риска `pattern:'-'` має спеціальне значення у квадратних дужках але тільки між іншими символами, не на початку чи в кінці виразу, тож немає необхідності її екранувати.
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
# Find the time as hh:mm or hh-mm
1+
# Знайдіть часовий формат hh:mm або hh-mm
22

3-
The time can be in the format `hours:minutes` or `hours-minutes`. Both hours and minutes have 2 digits: `09:00` or `21-30`.
3+
Час можна записати у форматі `години:хвилини` або `години-хвилини`. У будь-якому разі потрібні дві цифри для позначення годин і хвилин: `09:00` або `21-30`.
44

5-
Write a regexp to find time:
5+
Напишіть регулярний вираз для пошуку часового формату:
66

77
```js
88
let regexp = /your regexp/g;
9-
alert( "Breakfast at 09:00. Dinner at 21-30".match(regexp) ); // 09:00, 21-30
9+
alert( "Сніданок о 09:00. Вечеря о 21-30".match(regexp) ); // 09:00, 21-30
1010
```
1111

12-
P.S. In this task we assume that the time is always correct, there's no need to filter out bad strings like "45:67". Later we'll deal with that too.
12+
P.S. В цій задачі ми завжди маємо коректний час, не потрібно перевіряти неіснуючі комбінації цифр, як-то "45:67". Пізніше ми роглянемо і такі випадки.

9-regular-expressions/08-regexp-character-sets-and-ranges/article.md

Lines changed: 85 additions & 85 deletions
Large diffs are not rendered by default.
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11

2-
Solution:
2+
Відповідь:
33

44
```js run
55
let regexp = /\.{3,}/g;
6-
alert( "Hello!... How goes?.....".match(regexp) ); // ..., .....
6+
alert( "Привіт!... Як справи?.....".match(regexp) ); // ..., .....
77
```
88

9-
Please note that the dot is a special character, so we have to escape it and insert as `\.`.
9+
Зауважте, що крапка це спецсимвол, тож потребує екранування за допомогою `\.`.

9-regular-expressions/09-regexp-quantifiers/1-find-text-manydots/task.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ importance: 5
22

33
---
44

5-
# How to find an ellipsis "..." ?
5+
# Як знайти розділовий знак три крапки "..." ?
66

7-
Create a regexp to find ellipsis: 3 (or more?) dots in a row.
7+
Створіть регулярний вираз, який знайде розділовий знак три крапки: 3 (чи навіть більше?) крапок поспіль.
88

9-
Check it:
9+
Перевірте:
1010

1111
```js
1212
let regexp = /your regexp/g;
13-
alert( "Hello!... How goes?.....".match(regexp) ); // ..., .....
13+
alert( "Привіт!... Як справи?.....".match(regexp) ); // ..., .....
1414
```
Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
We need to look for `#` followed by 6 hexadecimal characters.
1+
Нам потрбіно знайти символ `#` за яким слідують 6 шістнадцяткових символів.
22

3-
A hexadecimal character can be described as `pattern:[0-9a-fA-F]`. Or if we use the `pattern:i` flag, then just `pattern:[0-9a-f]`.
3+
Шістнадцятковий символ можна описати як `pattern:[0-9a-fA-F]`. Або, якщо застосувати прапорець `pattern:i` , то запис скоротиться до `pattern:[0-9a-f]`.
44

5-
Then we can look for 6 of them using the quantifier `pattern:{6}`.
5+
Далі ми позначимо за допомогою квантифікатора, що нам потрібно саме 6 таких шістнадцяткових символів `pattern:{6}`.
66

7-
As a result, we have the regexp: `pattern:/#[a-f0-9]{6}/gi`.
7+
І у результаті, отримаємо такий регулярний вираз: `pattern:/#[a-f0-9]{6}/gi`.
88

99
```js run
1010
let regexp = /#[a-f0-9]{6}/gi;
@@ -14,18 +14,18 @@ let str = "color:#121212; background-color:#AA00ef bad-colors:f#fddee #fd2"
1414
alert( str.match(regexp) ); // #121212,#AA00ef
1515
```
1616

17-
The problem is that it finds the color in longer sequences:
17+
Проблема в тому, що вищевказаний регулярний вираз знаходитиме код кольору навіть у довших послідовностях.
1818

1919
```js run
2020
alert( "#12345678".match( /#[a-f0-9]{6}/gi ) ) // #123456
2121
```
2222

23-
To fix that, we can add `pattern:\b` to the end:
23+
Щоб виправити це, ми додамо `pattern:\b` у кінці виразу:
2424

2525
```js run
26-
// color
26+
// колір
2727
alert( "#123456".match( /#[a-f0-9]{6}\b/gi ) ); // #123456
2828

29-
// not a color
29+
// не колір
3030
alert( "#12345678".match( /#[a-f0-9]{6}\b/gi ) ); // null
3131
```
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
# Regexp for HTML colors
1+
# Регулярний вираз для кольорів в HTML
22

3-
Create a regexp to search HTML-colors written as `#ABCDEF`: first `#` and then 6 hexadecimal characters.
3+
Створіть регулярний вираз, який шукає HTML-кольори записані у форматі `#ABCDEF`: спершу символ `#` за яким слідують 6 шістнадцяткових символів.
44

5-
An example of use:
5+
Приклад використання:
66

77
```js
8-
let regexp = /...your regexp.../
8+
let regexp = /...ваш регулярний вираз.../
99

1010
let str = "color:#121212; background-color:#AA00ef bad-colors:f#fddee #fd2 #12345678";
1111

1212
alert( str.match(regexp) ) // #121212,#AA00ef
1313
```
1414

15-
P.S. In this task we do not need other color formats like `#123` or `rgb(1,2,3)` etc.
15+
P.S. В цій задачі нам не потрібно враховувати інші формати запису кольорів, як наприклад `#123` або `rgb(1,2,3)` тощо.

0 commit comments

Comments
 (0)