Модераторы: ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> разбор e-mail на недопустимые символы, проверка e-mail на отсутствие символов 
V
    Опции темы
trinitr0
Дата 7.8.2013, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 102
Регистрация: 25.6.2013

Репутация: нет
Всего: нет



Пишу так:

Код

$string = "[email protected]";
if ($string =~ /([^<>(),;\s]+)@([^<>(),;\s]+)/){
    print "valid"
}else{print "Invalid"}


В итоге выводится "Invalid". Помогите пожалуйста как написать правильно регулярку?
PM MAIL Jabber   Вверх
ginnie
Дата 7.8.2013, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 1
Всего: 49



trinitr0, я бы сделал так:
Код

use Email::Valid;
print (Email::Valid->address('[email protected]') ? 'valid' : 'invalid');


P.S. что касается Вашего примера, добавьте
Код

use strict;
use warnings;

и все станет понятно.

Это сообщение отредактировал(а) ginnie - 7.8.2013, 13:19


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
trinitr0
Дата 7.8.2013, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 102
Регистрация: 25.6.2013

Репутация: нет
Всего: нет



Лаконично! Но мне бы хотелось бы понять где в моём RegExp ошиПка
PM MAIL Jabber   Вверх
ginnie
Дата 7.8.2013, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 1
Всего: 49



Цитата(trinitr0 @  7.8.2013,  13:21 Найти цитируемый пост)
Лаконично! Но мне бы хотелось бы понять где в моём RegExp ошиПка 

Ошибка тут
Код

$string = "[email protected]";



--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
trinitr0
Дата 7.8.2013, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 102
Регистрация: 25.6.2013

Репутация: нет
Всего: нет



Пока не понимаю, где тут ошибка? 
PM MAIL Jabber   Вверх
ginnie
Дата 7.8.2013, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 1
Всего: 49



Добавьте
Код

print $string;



--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
trinitr0
Дата 7.8.2013, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 102
Регистрация: 25.6.2013

Репутация: нет
Всего: нет



Ах вот оно в чём дело!

Цитата

...Name "main::mail" used only once...


Спасибо! Об этом даже не подумал!

PM MAIL Jabber   Вверх
ginnie
Дата 7.8.2013, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 1
Всего: 49



Цитата(trinitr0 @  7.8.2013,  14:05 Найти цитируемый пост)
Спасибо! Об этом даже не подумал!

Чтобы упростить процесс разработки, надо всегда использовать
Код

use strict;
use warnings;



--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
trinitr0
Дата 7.8.2013, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 102
Регистрация: 25.6.2013

Репутация: нет
Всего: нет



Ясно.

Конечно можно так:
Код

$string = "some\@mail.ru";


Но как заставить работать всётаки при:

Код

$string = "[email protected]";



Это сообщение отредактировал(а) trinitr0 - 7.8.2013, 14:23
PM MAIL Jabber   Вверх
ginnie
Дата 7.8.2013, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 1
Всего: 49



Цитата(trinitr0 @  7.8.2013,  14:18 Найти цитируемый пост)
Ясно. Но тогда как заставить работать эти строки? 

Вопрос относится к Вашему примеру, или к strict и warnings?


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
trinitr0
Дата 7.8.2013, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 102
Регистрация: 25.6.2013

Репутация: нет
Всего: нет



К примеру
PM MAIL Jabber   Вверх
ginnie
Дата 7.8.2013, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 1
Всего: 49



Как вариант:
Код

$string = '[email protected]';



--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
trinitr0
Дата 7.8.2013, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 102
Регистрация: 25.6.2013

Репутация: нет
Всего: нет



Цитата(ginnie @ 7.8.2013,  15:41)
Как вариант:
Код

$string = '[email protected]';


Так то что надо!
Спасибо большое за ценные советы, внимание и помощь!

 smile 
PM MAIL Jabber   Вверх
igorold
Дата 23.8.2013, 06:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

Репутация: нет
Всего: 17



можно еще так:

Код

$string = "some\@mail.ru"


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Регулярные выражения | Следующая тема »


 




[ Время генерации скрипта: 0.1508 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.