Уроки модуля (3/4)
Просмотр назад: `(?<=...)` `(?<!...)`
Lookbehind — это зеркальное отражение опережающего просмотра: они смотрят before. текущая позиция, все еще нулевая ширина.
(?<=...)-- положительный просмотр: шаблон должен предшествовать.(?<!...)-- негативный просмотр: шаблон НЕ должен предшествовать.
Pattern: (?<=\$)\d+
Sample: Costo $100, sconto -25, totale $75.
^^^ ^^$ не соответствует, но работает как условие: только цифры
предшествует совпадение знака доллара.
Негативный ретроспективный анализ
Pattern: (?<!\w)\d+
Sample: Codice abc123 e numero 456.
^^^(?<!\w) требует, чтобы перед цифрами НЕ было словесных символов:
abc123 исключен (перед 123 есть c, \w), совпадения 456 (перед
есть место).
Ключевое отличие от группы без захвата
\\$\\d+ matches "$100": the match includes the dollar sign.
(?<=\\$)\\d+ matches "100": the match contains ONLY the digits.Если вам нужно извлечь «чистое» значение без префикса, посмотрите назад это правильный выбор.
Совместимость с просмотром назад в JavaScript
Положительный (?<=...) и отрицательный (?<!...) просмотр назад проверяют, что предшествует текущей позиции. В JavaScript они поддерживаются начиная с ES2018; в старых браузерах или устаревших движках Node.js они вызывали ошибки компиляции синтаксиса.
Попробуйте это
Извлекайте из цен в тексте только числовое значение (без знака $).
Показать подсказку
Переместить \\$ внутри положительного просмотра назад (?<=\\$): условие позиции, а не часть совпадения.
Решение доступно после 3 попыток
Обзор упражнения
Найдите каждую последовательность цифр, которой НЕ предшествует буква или цифра (т. е. «изолированные» числа, а не части кода, такие как «abc123»).
Показать подсказку
Используйте отрицательный просмотр назад (?<!\\w), чтобы исключить наличие буквы или цифры раньше.
Решение доступно после 3 попыток
Дополнительная задача
Find only the digits of negative numbers (digits preceded by the `-` sign), excluding the minus sign from the match.
Показать подсказку
Переместите знак минус - внутри положительного просмотра назад (?<=-).
Решение доступно после 3 попыток