Не получается реализовать SUBJ
Пробую так :
....
....
if ( ! ($params{$_} =~ /((\w+)\@(\w+)){1}(\,((\w+)\@(\w+))+)*/) )
{
die "Error : parameter \"$_\" is not CSV string\n";
}
....
....
Не работает!?
Мои предположения по поводу этого выражения :
((\w+)\@(\w+)){1} - Это ровно одно совпадение типа user@domain
(\,((\w+)\@(\w+)){1})* - Это ноль или более совпадений вида ,user@domain
В чём моя ошибка?
И ещё - где можно посмотреть примеры наиболее часто употребляемых
регулярных выражений?
Имеется ввиду не синтаксис, а готовые шаблоны например для email,ip...
2 aton:
email адреса вообще видели или как? Про точку в адресе почтового сервера слышали? А в названии почтового ящика?
вот этот адрес ваше рег. выражение забракует.
my.mail@server.ru
1 сновная проблема: @ входит в \w
это значит, что как мимимум надо использовать ?
2 Частая ошибка: пытаться использовать хеденшолпер - два в одном.
Проще все-таки разбить строку на куски и работать с отдельными кусками
if ( @err = grep{!/^\w+@\w+$/} split(/\s*,\s*/,$input) ){
die "bad email(s): ",join(',',@err),"\n";
}