powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (Perl) Регулярное выр. на проверку расширения
20 сообщений из 20, страница 1 из 1
(Perl) Регулярное выр. на проверку расширения
    #33599350
oraweb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как написать регулярное, чтобы проверить конец строки.
Пример, допустимы и обязательны в наличии в конце строки только: .gif, .png, .jpg, jpeg
Если отсутствует любой вариат из 4-х - ошибка
...
Рейтинг: 0 / 0
(Perl) Регулярное выр. на проверку расширения
    #33599500
Фотография Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unless ( $str =~ /\.(gif|png|jpg|jpeg)$/ ) { print "Неверное расширение"; }
...
Рейтинг: 0 / 0
(Perl) Регулярное выр. на проверку расширения
    #33600966
Anjey aka PM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Николай aka Motodorunless ( $str =~ /\.(gif|png|jpg|jpeg)$/ ) { print "Неверное расширение"; }

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

из той же оперы но както красифше :)
...
Рейтинг: 0 / 0
(Perl) Регулярное выр. на проверку расширения
    #33608172
oraweb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
(Perl) Регулярное выр. на проверку расширения
    #33608296
Фотография Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
if ( $str =~ /\.(\w+)$/ && $& !~ /(gif|png|jpg|jpeg)$/ ) { print "Неверное расширение"; }
...
Рейтинг: 0 / 0
(Perl) Регулярное выр. на проверку расширения
    #33608450
oraweb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Николай aka Motodor
Код: plaintext
if ( $str =~ /\.(\w+)$/ && $& !~ /(gif|png|jpg|jpeg)$/ ) { print "Неверное расширение"; }


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

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

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


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

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

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

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

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


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