Создать регулярное выражение posix: любые года, кроме двух лет
Нужно создать регулярное выражение в posix, которое будет находить любые года в скобках, кроме 2021 и 2022 года. Пока получилось только такое:
/\([0-9][0-9][^2][^1-2]\)
Нужно чтобы находило 1,3,5 строки. А это выражение не находит 1.
(2020)
(2021)
(1999)
(2022)
(2030)
Ответы (1 шт):
Автор решения: Wiktor Stribiżew
→ Ссылка
Выражение, совместимое со стандартом POSIX ERE:
\([0-9]{2}([01][0-9]|20|2[3-9]|[3-9][0-9])\)
См. пример работы регулярного выражения.
Подробности:
\(-([0-9]{2}- две цифры([01][0-9]|20|2[3-9]|[3-9][0-9]):[01][0-9]|- от 00 до 19 или20|- 20 или2[3-9]|- от 23 до 29[3-9][0-9]- от 30 до 99
\)-)
Для преобразования выражения в POSIX BRE (расширенный в утилитах GNU) измените экранирование:
([0-9]\{2\}\([01][0-9]\|20\|2[3-9]\|[3-9][0-9]\))