Уроки модуля (3/4)
Отрицание: `[^...]`
Размещение курсора ^ в качестве первого символа внутри скобок.
инвертирует класс: он соответствует любому символу, кроме перечисленных.
Pattern: [^aeiou]
Sample: ciao mondo
^ ^^ ^[^aeiou] соответствует согласным, пробелам, знакам препинания, цифрам\u2026 всему, что
не гласная.
Типичные примеры
[^\s]-- любой символ, не являющийся пробелом (эквивалент\S).[^0-9]-- все, что не является цифрой (эквивалент\D).[^"]+-- "последовательность символов, не являющихся двойными кавычками" (полезно для извлечь содержимое между кавычками).
Pattern: "([^"]+)"
Sample: Il libro "Il nome della rosa" e' famoso.Группа ([^"]+) фиксирует все, что находится между кавычками остановка
перед следующим ": это классический трюк, позволяющий избежать
Проблема жадности и ленивости.
Отрицание и альтернативные подстановочные знаки
Инвертированный класс [^...] использует ровно один символ, НЕ входящий в указанный набор. Это мощный инструмент, позволяющий предотвратить выход движка за критические разделители и избежать ReDoS, вызванного бесконечными циклами возврата.
Попробуйте это
Извлеките содержимое каждой строки, заключенной в двойные кавычки, не захватывая сами кавычки.
Показать подсказку
Замените .+ на [^"]+: таким образом совпадение остановится на следующей кавычке.
Решение доступно после 3 попыток
Обзор упражнения
Найдите каждое слово, состоящее ТОЛЬКО из согласных (без гласных, без цифр и символов).
Показать подсказку
Внутри скобок вы можете комбинировать отрицание гласных с \\W (не слово) и \\d (цифры).
Решение доступно после 3 попыток
Дополнительная задача
Соответствует последовательности одного или нескольких символов, явно исключая пробелы и запятые.
Показать подсказку
Используйте [^\\s,] с квантором +.
Решение доступно после 3 попыток