Как решить задачку по java с регулярными выражениями? Само задание:
Использовать регулярное выражение, определяющее является ли данная строка шестнадцатиричным идентификатором цвета в HTML, но не являющегося белым (#FFFFFF) или черным (#000000) цветом.
пример соответствий: #FFFFF1, #FF3421, #00ff00.
пример несоответствий: 232323, f#fddee, #fd2, #ffffff.
Про вторую часть задания (с #FFFFFF и #000000) гугл информации не дал. Задание кажется не сложным, но я в тупике.
Сделал такую строчку: Pattern regex = Pattern.compile("#((([\\dA-Fa-f]){6}))");
Пытался сделать так:Pattern regex = Pattern.compile("#((([\\dA-Fa-f]){6})&&[^(000000)] &&[^(ffffff)])");
Но в таком случае все введенные выражения становятся false.

21 Авг 2019 в 07:07
208 +1
1
Ответы
1

Для решения данной задачи, можно воспользоваться отрицательным просмотром вперед (negative lookahead), чтобы исключить определенные строки.
Вот пример регулярного выражения, которое соответствует шестнадцатиричному идентификатору цвета в HTML, исключая белый и черный цвет:

Pattern regex = Pattern.compile("#(?![fF]{6}|[0]{6})[0-9A-Fa-f]{6}");

Объяснение:

# - символ решетки(?![fF]{6}|[0]{6}) - отрицательное просмотр вперед, проверяет, что после решетки не идут 6 символов "f" или 6 символов "0"[0-9A-Fa-f]{6} - 6 символов, которые могут быть цифрами (0-9) или символами A-F или a-f

С помощью данного регулярного выражения можно проверить строку на соответствие шестнадцатиричному идентификатору цвета в HTML, исключая белый (#FFFFFF) и черный (#000000) цвета.

20 Апр 2024 в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир