Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Регулярное выражение

Ответить
Настройки темы
Регулярное выражение

Аватара для benya

Старожил


Сообщения: 302
Благодарности: 5

Профиль | Сайт | Отправить PM | Цитировать


Господа, как написать регулярное выражение которое вырезает первых 2 символа или один в зависимости от длины строки. Нужно проверить только 2 условия на 6 и 5 цифр.
Например, имеем число: 25000
Если число имеет 6 цифр, оставляем только первых 2, тоесть 25
Если же число имеет 5 цифр, оставляем только одно. Тоесть 2
Можно ли задать такое регулярным выражением??
Не хотелось бы писать всякие if-then-else....

Отправлено: 14:13, 16-08-2005

 

Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


а что надо?? Может просто делить на 1000 и всё??

-------
Fortes fortuna adiuvat


Отправлено: 15:50, 16-08-2005 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

mar mar вне форума

Аватара для mar

just mar


Moderator


Сообщения: 3904
Благодарности: 163

Профиль | Отправить PM | Цитировать


Цитата:
Не хотелось бы писать всякие if-then-else....
это шутка, или непонимание, что такое разветвление и условие в программировании? Если экономия места, то пишите
PHP код: Выделить весь код

strlen($a) == вариант раз вариант два


Последний раз редактировалось mar, 16-08-2005 в 23:49.


Отправлено: 15:51, 16-08-2005 | #3


Аватара для XCodeR

Ветеран


Сообщения: 878
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


benya
может быть если напишете, что конкретно надо, будет понятнее?

mar
чтоб тему новую не создавать, можете написать синтаксис сокращенного ветления( = ? : ).

Отправлено: 23:11, 16-08-2005 | #4

mar mar вне форума

Аватара для mar

just mar


Moderator


Сообщения: 3904
Благодарности: 163

Профиль | Отправить PM | Цитировать


Xcode
Код: Выделить весь код
условие? вариант, работающий при выполнении условия : вариант, идущий в случае невыполнения;
Это как-то уже всплывало в теме Пользовательский ввод - не позволить рвать страничку., и тоже, как побочный результат жизнедеятельности.
Но в нашем-то случае, имхо все - побочное, а решение, как уже сказал vadimiron - надо просто все делить на энное количество тысяч и отбрасывть дробную часть.

Последний раз редактировалось mar, 16-08-2005 в 23:56.


Отправлено: 23:48, 16-08-2005 | #5


Аватара для E-mail

Ветеран


Сообщения: 640
Благодарности: 2

Профиль | Сайт | Отправить PM | Цитировать


([0-9][0-9])[0-9][0-9][0-9][0-9]

([0-9])[0-9][0-9][0-9][0-9]

такое?

-------
Основы HTML | Конференции


Отправлено: 01:18, 17-08-2005 | #6


Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Отправить PM | Цитировать


если я правильно поняла отбрасываются последние 4 цифры:
/(\d{1,2})\d{4}$/

Отправлено: 15:08, 17-08-2005 | #7


Аватара для XCodeR

Ветеран


Сообщения: 878
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


E-mail,eleo
зачем уводить человека в лес?...
vadimiron и mar имхо дали более корректный совет.
"strlen + if + деление" работают быстрее, чем функции регулярных выражений.
имхо...

Отправлено: 21:47, 17-08-2005 | #8


Аватара для benya

Старожил


Сообщения: 302
Благодарности: 5

Профиль | Сайт | Отправить PM | Цитировать


Мне на самом деле нужно было вычислить количество лет от определенной даты.
Правильно подкинул идею vadimiron.
Там вообще не нужны никакие регулярные выражения.
Я сделал так :
$vozrast = "19791012"; день рождения
$dr = "20050818"; # текущая дата
$vozrast = int(($dr-$vozrast)/10000);
Получаем правильное число даже если человеку будет 200 лет ))

Последний раз редактировалось benya, 18-08-2005 в 17:19.


Отправлено: 22:16, 17-08-2005 | #9


Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


Цитата:
Правильно ответил vadimiron, только я делю на 10000. И отбрасывал остачу. Все работает. Спасибо
В комплекте с ПХП ещё есть интересная функция bcdiv, в ней можно делить два числа и указывать, сколько знаков после запятой нужно считать

-------
Fortes fortuna adiuvat


Отправлено: 00:09, 18-08-2005 | #10



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Регулярное выражение

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Регулярное выражение: вырезать данные между тегами venuko Вебмастеру 6 04-06-2009 16:59
Регулярное выражение - вырезать все кроме указанных в масиве слов venuko Вебмастеру 14 30-01-2009 09:51
Регулярное выражение для проверки денежной суммы BuilderMan Вебмастеру 9 23-08-2006 11:24
регулярное выражение на пхп. Drem Вебмастеру 13 22-07-2006 00:16
как быстрее и менее ресурсоемкей создать регулярное выражение E-mail Вебмастеру 3 13-02-2005 11:24




 
Переход