Skip to content

Commit 01a5194

Browse files
authored
Article translation rev2
1 parent 228569e commit 01a5194

1 file changed

Lines changed: 8 additions & 8 deletions

File tree

  • 9-regular-expressions/10-regexp-backreferences

9-regular-expressions/10-regexp-backreferences/article.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,17 @@
22

33
Скобочные группы можно получать не только в результате или в строке замены, но и в самом шаблоне.
44

5-
## Обратная ссылка с помощью номера: \n
5+
## Обратная ссылка по номеру: \n
66

7-
К группе можно обратиться в шаблоне используя `\n`, где `\n` это номер группы.
7+
К группе можно обратиться в шаблоне, используя `\n`, где `\n` -- это номер группы.
88

99
Чтобы было яснее, рассмотрим это на следующем примере.
1010

11-
Необходимо найти в тексте строку в кавычках: либо одинарных`subject:'...'`, либо двойных `subject:"..."` оба варианта должны работать.
11+
Необходимо найти в тексте строку в кавычках: либо одинарных`subject:'...'`, либо двойных `subject:"..."` -- оба варианта должны работать.
1212

1313
Как найти такие строки?
1414

15-
Можно предусмотреть два вида кавычек в шаблоне: `pattern:['"](.*?)['"]`, но в таком случае будут находиться строки со смешанными кавычками, например `match:"...'` and `match:'..."`. Это приведет к ошибке, когда одна кавычка окажется внутри других, как в строке `subject:"She's the one!"`:
15+
Можно предусмотреть два вида кавычек в шаблоне: `pattern:['"](.*?)['"]`, но в таком случае будут находиться строки со смешанными кавычками, например `match:"...'` и `match:'..."`. Это приведёт к ошибке, когда одна кавычка окажется внутри других, как в строке `subject:"She's the one!"`:
1616

1717

1818
```js run
@@ -24,7 +24,7 @@ let reg = /['"](.*?)['"]/g;
2424
alert( str.match(reg) ); // "She'
2525
```
2626

27-
Как видно, шаблон нашел открывающую кавычку `match:"`, а после отобразил текст вплоть до следующей кавычки `match:'`, после чего поиск завершается.
27+
Как видно, шаблон нашёл открывающую кавычку `match:"`, а после нашёл текст вплоть до следующей кавычки `match:'`, после чего поиск завершился.
2828

2929
Для того, чтобы шаблон искал закрывающую кавычку такую же, как и открывающую, мы обернём шаблон в скобочную группу и используем обратную ссылку на неё:
3030

@@ -42,14 +42,14 @@ alert( str.match(reg) ); // "She's the one!"
4242

4343
Теперь работает! Движок регулярных выражений находит первую кавычку из шаблона `pattern:(['"])` и запоминает её. Это первая скобочная группа.
4444

45-
Далее в шаблоне `pattern:\1` означает «найти то же самое, что в первой скобочной группе», а именно аналогичную кавычку в нашем случае.
45+
Далее в шаблоне `pattern:\1` означает "найти то же самое, что в первой скобочной группе", а именно -- аналогичную кавычку в нашем случае.
4646

4747
Обратите внимание на два нюанса:
4848

49-
- Чтобы использовать скобочную группу в строке заменынужно использовать ссылку вида $1, а в шаблоне – обратный слэш: \1.
49+
- Чтобы использовать скобочную группу в строке замены, нужно использовать ссылку вида `$1`, а в шаблоне – обратный слэш: `\1`.
5050
- Мы не можем обращаться к группе, если в ней используется `?:`. Группы, которые исключаются из скобок `(?:...)`, не запоминаются движком.
5151

52-
## Обратная ссылка с помощью имени: `\k<name>`
52+
## Обратная ссылка по имени: `\k<name>`
5353

5454
Обратные ссылки с помощью `\k<name>` возможны для именованных групп.
5555

0 commit comments

Comments
 (0)