diff --git a/9-regular-expressions/14-regexp-lookahead-lookbehind/article.md b/9-regular-expressions/14-regexp-lookahead-lookbehind/article.md index b3d1239253..5d7ab39bac 100644 --- a/9-regular-expressions/14-regexp-lookahead-lookbehind/article.md +++ b/9-regular-expressions/14-regexp-lookahead-lookbehind/article.md @@ -22,7 +22,7 @@ alert( str.match(/\d+(?=€)/) ); // 30, число 1 проигнорирова Обратим внимание, что проверка - это именно проверка, содержимое скобок `pattern:(?=...)` не включается в результат `match:30`. -При поиске `pattern:X(?=Y)` движок регулярных выражений, найдя `pattern:X`, проверяет есть ли после него `pattern:Y`. Если это не так, то игнорирует совпадение и продолжает поиск дальше. +При поиске `pattern:X(?=Y)` движок регулярных выражений, найдя `pattern:X`, проверяет, есть ли после него `pattern:Y`. Если это не так, то игнорирует совпадение и продолжает поиск дальше. Возможны и более сложные проверки, например `pattern:X(?=Y)(?=Z)` означает: @@ -31,11 +31,11 @@ alert( str.match(/\d+(?=€)/) ); // 30, число 1 проигнорирова 3. Проверить, идёт ли `pattern:Z` сразу после `pattern:X` (если нет - не подходит). 4. Если обе проверки прошли - совпадение найдено. -То есть этот шаблон означает, что мы ищем `pattern:X` при условии, что за ним идёт и `pattern:Y` и `pattern:Z`. +То есть этот шаблон означает, что мы ищем `pattern:X` при условии, что за ним идут и `pattern:Y`, и `pattern:Z`. Такое возможно только при условии, что шаблоны `pattern:Y` и `pattern:Z` не являются взаимно исключающими. -Например, `pattern:\d+(?=\s)(?=.*30)` ищет `pattern:\d+` при условии, что за ним идёт пробел, и где-то впереди есть `30`: +Например, `pattern:\d+(?=\s)(?=.*30)` ищет `pattern:\d+` при условии, что за ним идёт пробел, и где-то далее есть `30`: ```js run let str = "1 индейка стоит 30€";