Всем привет
Помогите плиз с регексами:
Есть строка вида
[user@mail.ru]-[0.85589599609375]-[1830319.21337891].dat
(все что идет после "[почта]-" может быть различным, например может быть различное кол-во следующих за ним рандомных цифр
Нужен регекс который бы однозначно выдирал только электронный адрес, и ничего более...
Такая конструкция:
> Всем привет > Помогите плиз с регексами: > Есть строка вида > [user@mail.ru]-[0.85589599609375]-[1830319.21337891].dat > (все что идет после "[почта]-" может быть различным, > например может быть различное кол-во следующих за ним > рандомных цифр > Нужен регекс который бы однозначно выдирал только > электронный адрес, и ничего более... > Такая конструкция: > > if($file_name =~ /\[(.*\@.*\.\w+){1}\]-.i) { > $email = $1; > print "$email\n"; > } > > Почему то не хочет адекватно работать > Хелп плиз, надо срочно :(
Не работает наверн из-за "жадности" *. попробуйте \[[a-z]+@[a-z]+(\.[a-z]+)*\]
Вот посмотрите полный регэксп для мыла -...19.06.06 09:18 Автор: Nick Spring Статус: Незарегистрированный пользователь
> Всем привет > Помогите плиз с регексами: > Есть строка вида > [user@mail.ru]-[0.85589599609375]-[1830319.21337891].dat > (все что идет после "[почта]-" может быть различным, > например может быть различное кол-во следующих за ним > рандомных цифр > Нужен регекс который бы однозначно выдирал только > электронный адрес, и ничего более... > Такая конструкция: > > if($file_name =~ /\[(.*\@.*\.\w+){1}\]-.i) { > $email = $1; > print "$email\n"; > } > > Почему то не хочет адекватно работать > Хелп плиз, надо срочно :(
Это самое невинное, что можно придумать. Так же непонятно обилие ограничителей жадности "?" (забыл правильное название).
Помню, я поднимал здесь уже эту тему с более детальным регэкспом:
http://bugtraq.ru/cgi-bin/forum.mcgi?type=sb&b=8&m=124515. Там, единственное, нужно подправить часть, ответственную за домен верхнего уровня:
[A-Za-z]{2,4}
заменить на
([A-Za-z]{2,4}|museum)
Однако все равно не понятно каким образом это относится к сабжу.
************************************test for RFC822 &; RFC1738 email syntax
++ only visibled chars used
++ ip as host not allowed */
/^[^][\0-\x20()<>@,;:\\".\x80-\xff](?:[^][\0-\x20()<>@,;:\\"\x80-\xff]*?[^][\0-\x20()<>@,;:\\".\x80-\xff]@(?:(?:(?:[a-zA-Z0-9](?:[-a-zA-Z0-9]*[-a-zA-Z0-9])?)\.)?:[a-zA-Z](?:[-a-zA-Z0-9]*[a-zA-Z])?))$/