Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Регулярные выражения в перле

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
tolik



Зарегистрирован: 23.01.2003
Сообщения: 21

СообщениеДобавлено: Вс Ноя 11 2001 17:05    Заголовок сообщения: Регулярные выражения в перле Ответить с цитатой

Необходимо составить регулярное выражение, чтобы оно анализировало
входные данные.
В строке ввода должны быть только чсла (вещественные),
чтобы нельзя было ввести никаких специальных символов (!"№;%Confused*()_+=-
и т.д.).
Т.е. должны вводиться только числа в форматах:
1, 1.5, 0, 0.5, +1, -0.5, -2, + 1.5, 11.5 и т.д.,
и число после запятой не может содержать больше 1-й цифры.
Дело в том что мой скрипт должен работать с числами (выполнять
математические операции), а если в него введут что-то типа
!"№;%;%Confused*()_+-=0 и т.п. то он просто не сможет всё корректно
посчитать а значит и правильно сработать.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Прохожий
Гость





СообщениеДобавлено: Пн Ноя 12 2001 10:25    Заголовок сообщения: Re: Регулярные выражения в перле Ответить с цитатой

если проверить на
/^[\+-]{0,1}\s{0,1}\d{1,}\.{0,1}\d{0,1}$/
то числа из примера пройдут, а, например, --1, 1.55, +-2 - нет. Спецсимволы, естессно, не пройдут вообще.
Вернуться к началу
Dae
Гость





СообщениеДобавлено: Чт Ноя 22 2001 22:01    Заголовок сообщения: Re: Регулярные выражения в перле Ответить с цитатой

Наилучшим является следующее:

print "Enter a number :";
chop ($_=);

if (/^([+-]?)((?:\d|\.\d)\d*(?:\.\d*)?)(?:[Ee]([+-]?\d+))?$/)
{
print "$_ is a number :$1", $2*exp($3*log(10)) ,"\n";
}
else
{
print "$_ isn't a number\n"
}
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...