УСЛОВИЕНаписать программу, которая будет проверять email адрес на валидность.
Под правильным email адресом подразумевается строка вида AAA@BBB.CCC где:
AAA - строка минимальной длинны "2", которая может содержать большие и маленькие буквы латинского алфавита и цифры. Допускаются спецсимволы '.'(точка), '_'(подчеркивание), '-' (дефис), стоящие внутри строки.
BBB - строка ненулевой длины, которая может содержать большие и маленькие буквы латинского алфавита и цифры.
CCC - строка длинны от 2-х до 4-х символов, которая может содержать большие и маленькие буквы латинского алфавита.
#!/bin/bash
read N
arr=($(cat))
regex="^[A-Za-z0-9]+[A-Za-z0-9._-]?[A-Za-z0-9]@[A-Za-z0-9]+\.[A-Za-z]{2,4}"
for ((i=0; i<$N; i++))
do
if [[ "${arr[$i]}" =~ $regex ]]
then
echo "YES"
else
echo "NO"
fi
done
Ошибки при:
x.x.x@xxx.xxx
Потому что присутствует более двух спец-знаков. Вот это нужно исправить.