Skip to content

Commit 85510de

Browse files
committed
Trenslation update 9-regular-expressions_03-regexp-character-classes_article.md_ru
1 parent 0c97aea commit 85510de

1 file changed

Lines changed: 44 additions & 44 deletions

File tree

  • 9-regular-expressions/03-regexp-character-classes

9-regular-expressions/03-regexp-character-classes/article.md

Lines changed: 44 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -166,101 +166,101 @@ let str = "+7(903)-123-45-67";
166166
alert( str.replace(/\D/g, "") ); // 79031234567
167167
```
168168

169-
## Spaces are regular characters
169+
## Пробелы – обычные символы
170170

171-
Usually we pay little attention to spaces. For us strings `subject:1-5` and `subject:1 - 5` are nearly identical.
171+
Обычно мы уделяем мало внимания пробелам. Для нас строки `subject:1-5` и` subject: 1 - 5` практически идентичны.
172172

173-
But if a regexp doesn't take spaces into account, it may fail to work.
173+
Но если регулярное выражение не учитывает пробелы, оно может не работать.
174174

175-
Let's try to find digits separated by a dash:
175+
Давайте попробуем найти цифры, разделенные тире:
176176

177177
```js run
178-
alert( "1 - 5".match(/\d-\d/) ); // null, no match!
178+
alert( "1 - 5".match(/\d-\d/) ); // null, нет совпадений!
179179
```
180180

181-
Here we fix it by adding spaces into the regexp `pattern:\d - \d`:
181+
Здесь мы исправляем это, добавляя пробелы в регулярное выражение `pattern:\d - \d`:
182182

183183
```js run
184-
alert( "1 - 5".match(/\d - \d/) ); // 1 - 5, now it works
184+
alert( "1 - 5".match(/\d - \d/) ); // 1 - 5, теперь это работает
185185
```
186186

187-
**A space is a character. Equal in importance with any other character.**
187+
**Пробел - это символ. По важности он равен любому другому символу.**
188188

189-
Of course, spaces in a regexp are needed only if we look for them. Extra spaces (just like any other extra characters) may prevent a match:
189+
Конечно, пробелы в регулярных выражениях нужны только в том случае, если мы их ищем. Лишние пробелы (как и любые другие лишние символы) могут помешать совпадению:
190190

191191
```js run
192-
alert( "1-5".match(/\d - \d/) ); // null, because the string 1-5 has no spaces
192+
alert( "1-5".match(/\d - \d/) ); // null, потому что строка '1-5' не содержит пробелов
193193
```
194194

195-
In other words, in a regular expression all characters matter, spaces too.
195+
Другими словами, в регулярном выражении все символы имеют значение, даже пробелы.
196196

197-
## A dot is any character
197+
## Точка - это любой символ
198198

199-
The dot `"."` is a special character class that matches "any character except a newline".
199+
Точка `"."` - это специальный символьный класс, который соответствует "любому символу, кроме новой строки".
200200

201-
For instance:
201+
Для примера:
202202

203203
```js run
204-
alert( "Z".match(/./) ); // Z
204+
alert( "Ю".match(/./) ); // Ю
205205
```
206206

207-
Or in the middle of a regexp:
207+
Или в середине регулярного выражения:
208208

209209
```js run
210210
let reg = /CS.4/;
211211

212212
alert( "CSS4".match(reg) ); // CSS4
213213
alert( "CS-4".match(reg) ); // CS-4
214-
alert( "CS 4".match(reg) ); // CS 4 (space is also a character)
214+
alert( "CS 4".match(reg) ); // CS 4 (пробел тоже является символом)
215215
```
216216

217-
Please note that the dot means "any character", but not the "absense of a character". There must be a character to match it:
217+
Обратите внимание, что точка означает "любой символ", но не "отсутствие символа". Там должен быть каой-либо символ, чтобы соответствовать условию поиска:
218218

219219
```js run
220-
alert( "CS4".match(/CS.4/) ); // null, no match because there's no character for the dot
220+
alert( "CS4".match(/CS.4/) ); // null, нет совпадений потому что нет символа соответствующего точке
221221
```
222222

223-
### The dotall "s" flag
223+
### Точка, как буквально любой символ, с флагом "s"
224224

225-
Usually a dot doesn't match a newline character.
225+
Обычно точка не соответствует символу новой строки.
226226

227-
For instance, this doesn't match:
227+
Например, ниже в результате нет совпадений:
228228

229229
```js run
230-
alert( "A\nB".match(/A.B/) ); // null (no match)
230+
alert( "A\nB".match(/A.B/) ); // null (нет совпадений)
231231

232-
// a space character would match
233-
// or a letter, but not \n
232+
// пробел или буква
233+
// будут соответствовать, но не \n
234234
```
235235

236-
Sometimes it's inconvenient, we really want "any character", newline included.
236+
Иногда это неудобно, мы действительно хотим "любой символ", включая перевод строки.
237237

238-
That's what `s` flag does. If a regexp has it, then the dot `"."` match literally any character:
238+
Это то, что делает флаг `s`. Если регулярное выражение имеет его, то точка `"."` Соответствует буквально любому символу:
239239

240240
```js run
241-
alert( "A\nB".match(/A.B/s) ); // A\nB (match!)
241+
alert( "A\nB".match(/A.B/s) ); // A\nB (совпадение!)
242242
```
243243

244244

245-
## Summary
245+
## Итого
246246

247-
There exist following character classes:
247+
Существуют следующие классы симовлов:
248248

249-
- `pattern:\d` -- digits.
250-
- `pattern:\D` -- non-digits.
251-
- `pattern:\s` -- space symbols, tabs, newlines.
252-
- `pattern:\S` -- all but `pattern:\s`.
253-
- `pattern:\w` -- English letters, digits, underscore `'_'`.
254-
- `pattern:\W` -- all but `pattern:\w`.
255-
- `pattern:.` -- any character if with the regexp `'s'` flag, otherwise any except a newline.
249+
- `pattern:\d` -- цифры.
250+
- `pattern:\D` -- не-цифры.
251+
- `pattern:\s` -- пробельные символы, табы, новые строки.
252+
- `pattern:\S` -- все, кроме `pattern:\s`.
253+
- `pattern:\w` -- латиница, цифры, подчеркивание `'_'`.
254+
- `pattern:\W` -- все, кроме `pattern:\w`.
255+
- `pattern:.` -- любой символ, если с флагом регулярного выражения `'s'`, в противном случае любой, кроме символа новой строки.
256256

257-
...But that's not all!
257+
...Но это не все!
258258

259-
Modern Javascript also allows to look for characters by their Unicode properties, for instance:
259+
Современный JavaScript также позволяет искать символы по их свойствам Юникод, например:
260260

261-
- A cyrillic letter is: `pattern:\p{Script=Cyrillic}` or `pattern:\p{sc=Cyrillic}`.
262-
- A dash (be it a small hyphen `-` or a long dash ``): `pattern:\p{Dash_Punctuation}` or `pattern:\p{pd}`.
263-
- A currency symbol: `pattern:\p{Currency_Symbol}` or `pattern:\p{sc}`.
264-
- ...And much more. Unicode has a lot of character categories that we can select from.
261+
- Кириллица: `pattern:\p{Script=Cyrillic}` или `pattern:\p{sc=Cyrillic}`.
262+
- Тире (будь то короткое `-` или длинное тире ``): `pattern:\p{Dash_Punctuation}` или `pattern:\p{pd}`.
263+
- Валюта: `pattern:\p{Currency_Symbol}` или `pattern:\p{sc}`.
264+
- ...И многое другое. Юникод имеет много категорий символов, которые мы можем выбрать.
265265

266-
These patterns require `'u'` regexp flag to work. More about that in the chapter [](info:regexp-unicode).
266+
Для работы этих шаблонов необходим флаг регулярного выражения `'u'`. Подробнее об этом в главе [](info:regexp-unicode).

0 commit comments

Comments
 (0)