Ваш год может состоять из двух или четырех цифр, используйте
regex='^[0-9]{2}\.[0-9]{2}\.[0-9]{2}([0-9]{2})?[[:space:]]*/[[:space:]]*[0-9]{2}:[0-9]{2}$'
# ^^^^^^^^^^^
Bash demo :
s="25.06.19 / 16:30"
regex='^[0-9]{2}\.[0-9]{2}\.[0-9]{2}([0-9]{2})?[[:space:]]*/[[:space:]]*[0-9]{2}:[0-9]{2}$'
if [[ "$s" =~ $regex ]]; then
echo "Matched!"
fi;
Заметьте, я также заменил \s
на [[:space:]]
, который должен иметь более широкую поддержку в Bash, и /
не нуждается в экранировании, поскольку здесь нет разделителей регулярных выражений, а /
не является специальным метасимволом регулярных выражений. Кроме того, точки в \s.\/\s.
являются подозрительными, я так понимаю, вы хотели сопоставить любые 0 или более пробелов, поэтому я заменил .
на *
.