Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (Perl) Регулярное выр. на проверку расширения / 20 сообщений из 20, страница 1 из 1
14.03.2006, 13:44:28
    #33599350
oraweb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Perl) Регулярное выр. на проверку расширения
Как написать регулярное, чтобы проверить конец строки.
Пример, допустимы и обязательны в наличии в конце строки только: .gif, .png, .jpg, jpeg
Если отсутствует любой вариат из 4-х - ошибка
...
Рейтинг: 0 / 0
14.03.2006, 14:17:35
    #33599500
Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Perl) Регулярное выр. на проверку расширения
unless ( $str =~ /\.(gif|png|jpg|jpeg)$/ ) { print "Неверное расширение"; }
...
Рейтинг: 0 / 0
15.03.2006, 01:23:24
    #33600966
Anjey aka PM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Perl) Регулярное выр. на проверку расширения
Николай aka Motodorunless ( $str =~ /\.(gif|png|jpg|jpeg)$/ ) { print "Неверное расширение"; }

if ( $str !~ /\.(gif|png|jpg|jpeg)$/ ) { print "Неверное расширение"; }

из той же оперы но както красифше :)
...
Рейтинг: 0 / 0
17.03.2006, 14:22:30
    #33608172
oraweb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Perl) Регулярное выр. на проверку расширения
Anjey aka PM[quot Николай aka Motodor]
if ( $str !~ /\.(gif|png|jpg|jpeg)$/ ) { print "Неверное расширение"; }

С регулярными однозначно не дружу
$str может быть еще NULL - (не иметь значения) и это не ошибка. Добавил ?, но че-то не работает.
Код: plaintext
if ( $str !~ /\.(gif|png|jpg|jpeg)?$/ ) { print "Неверное расширение"; }
...
Рейтинг: 0 / 0
17.03.2006, 14:54:22
    #33608296
Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Perl) Регулярное выр. на проверку расширения
Код: plaintext
if ( $str =~ /\.(\w+)$/ && $& !~ /(gif|png|jpg|jpeg)$/ ) { print "Неверное расширение"; }
...
Рейтинг: 0 / 0
17.03.2006, 15:37:14
    #33608450
oraweb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Perl) Регулярное выр. на проверку расширения
Николай aka Motodor
Код: plaintext
if ( $str =~ /\.(\w+)$/ && $& !~ /(gif|png|jpg|jpeg)$/ ) { print "Неверное расширение"; }


Не катит, вообще ничего не проверяет, проходят любый значения.
...
Рейтинг: 0 / 0
17.03.2006, 16:20:03
    #33608610
Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Perl) Регулярное выр. на проверку расширения
$str = "xxxx.jpgx"; => "Неверное расширение"
$str = "xxxx.jpg"; => OK
$str = "xxxx"; => OK
$str = "xxxx.gif1"; => "Неверное расширение"

Вы уверен, что приводите тот код, который используете?
...
Рейтинг: 0 / 0
17.03.2006, 16:27:15
    #33608640
oraweb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Perl) Регулярное выр. на проверку расширения
Николай aka Motodor
$str = "xxxx.jpgx"; => "Неверное расширение"
$str = "xxxx.jpg"; => OK
$str = "xxxx"; => OK
$str = "xxxx.gif1"; => "Неверное расширение"

Вы уверен, что приводите тот код, который используете?
Уверен, пролозит и такое
$str = "xxxx.xjpg"; => OK
$str = "xxxx"; => OK
...
Рейтинг: 0 / 0
17.03.2006, 16:32:33
    #33608665
Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Perl) Регулярное выр. на проверку расширения
совсем заработался, порой лучше молчать чем писать, извините
Код: plaintext
if ( $str =~ /\.(\w+)$/ && $& !~ /\.(gif|png|jpg|jpeg)$/i ) { ...
...
Рейтинг: 0 / 0
17.03.2006, 16:40:56
    #33608705
g613
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Perl) Регулярное выр. на проверку расширения
Николай aka Motodorсовсем заработался, порой лучше молчать чем писать, извините
Код: plaintext
if ( $str =~ /\.(\w+)$/ && $& !~ /\.(gif|png|jpg|jpeg)$/i ) { ...


от использования $& тормоза некоторые бывают.

а не проще ли так и написать:
Код: plaintext
1.
2.
3.
if ( defined $str and $str !~ /\.(gif|png|jpg|jpeg)$/i ) {
  print "Ошибка...\n";
}
?
...
Рейтинг: 0 / 0
17.03.2006, 16:43:48
    #33608716
oraweb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Perl) Регулярное выр. на проверку расширения
Николай aka Motodorсовсем заработался, порой лучше молчать чем писать, извините
Код: plaintext
if ( $str =~ /\.(\w+)$/ && $& !~ /\.(gif|png|jpg|jpeg)$/i ) { ...


Уже теплее :) осталось обрубить
$str = "xxxx"; => OK
...
Рейтинг: 0 / 0
17.03.2006, 16:46:02
    #33608724
Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Perl) Регулярное выр. на проверку расширения
Уже теплее :) осталось обрубить
$str = "xxxx"; => OK
Вы же написали, что может не быть расширения!
...
Рейтинг: 0 / 0
17.03.2006, 16:47:16
    #33608729
Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Perl) Регулярное выр. на проверку расширения
g613
а не проще ли так и написать:
Код: plaintext
1.
2.
3.
if ( defined $str and $str !~ /\.(gif|png|jpg|jpeg)$/i ) {
  print "Ошибка...\n";
}
?
автор написал, что может отсутствовать расширение ...
...
Рейтинг: 0 / 0
17.03.2006, 16:48:16
    #33608736
Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Perl) Регулярное выр. на проверку расширения
я сошел с ума сегодня ...
...
Рейтинг: 0 / 0
17.03.2006, 16:50:41
    #33608751
oraweb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Perl) Регулярное выр. на проверку расширения
С регулярными однозначно не дружу
$str может быть еще NULL - (не иметь значения) и это не ошибка. Добавил ?, но че-то не работает.
Код: plaintext
if ( $str !~ /\.(gif|png|jpg|jpeg)?$/ ) { print "Неверное расширение"; }
[/quot]
не иметь значения т.е. $str=""; , а не расширения
...
Рейтинг: 0 / 0
17.03.2006, 16:50:47
    #33608752
g613
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Perl) Регулярное выр. на проверку расширения
не дочитал...
Код: plaintext
1.
2.
if ( defined $str and ( $str !~ /\.(gif|png|jpg|jpeg)$/i or $str !~ /\./ ) ) {
  print "Ошибка...\n";
}
...
Рейтинг: 0 / 0
17.03.2006, 17:11:29
    #33608819
oraweb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Perl) Регулярное выр. на проверку расширения
g613не дочитал...
Код: plaintext
1.
2.
if ( defined $str and ( $str !~ /\.(gif|png|jpg|jpeg)$/i or $str !~ /\./ ) ) {
  print "Ошибка...\n";
}

Ругается если $str - NULL
...
Рейтинг: 0 / 0
17.03.2006, 17:15:28
    #33608835
nik2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Perl) Регулярное выр. на проверку расширения
ну замени defined на length, в конце концов, и иди пить пиво...
...
Рейтинг: 0 / 0
17.03.2006, 17:18:17
    #33608844
oraweb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Perl) Регулярное выр. на проверку расширения
nik2ну замени defined на length, в конце концов, и иди пить пиво...

Ура, заработало, куда ящик пива проставлять?
Всем премного благодарен.
...
Рейтинг: 0 / 0
17.03.2006, 17:21:23
    #33608852
oraweb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Perl) Регулярное выр. на проверку расширения
Окончательный вариант, быть может кому-то пригодится

if ( length $str and ( $str !~ /\.(gif|png|jpg|jpeg)$/i or $str !~ /\./ ) ) {
print "Ошибка...\n";
}

_______________________________
Как создать свой internet-ресторан?
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (Perl) Регулярное выр. на проверку расширения / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]