вопрос по Regexp
Доброго времени суток!
Рассматриваю названия файлов К примеру у меня есть 2 выражения 1-ое: [\+=\\]+ 2-ое: \.(JPG)$ Как составить выражение: Отобрать только те, в названиях которых до ТОЧКИ - содержится любой из символов + = \ ,после ТОЧКИ с любым расширением КРОМЕ JPG Знаю что ИСКЛЮЧЕНИЕ работает так [^\+=\\], а вот с круглыми скобками оно работает? (^jpg) - это правильно???? Если нет, то как правильно? И вообще с точки зрения "граматики" - корректно ли составлять выражение, одна часть которого ищет символы, которые могут находиться в выражении, а вторая - наоборот, ищет символы которые НЕ могут? Спасибо! |
/[+=\\].*\.(?!jpg$)/ |
vovasvv,
прочитайте где-нибудь подробный мануал по регуляркам. у вас в голове каша, которую надо убрать, и изучить более систематизированно этот вопрос |
to Kolyaj
Если можно, то для тех кто на бронепоезде: [+=\\] - вопросов нет -сам писал, далее Точка - любой символ, далее звездочка - ноль или более повторений [+=\\]. , далее \. - прописной символ . - означает точку в тексте, далее ?!jpg$ - все это: а именно [+=\\].*\. наедется если в конце НЕ будет стоять jpg Наверное я с самого начала некорректно сформулировал задачу. Она такова: есть инпут типа файл, я ставлю проверку - не хочу чтобы в названии файла содержались символы -хочу чтобы загружали файлы с расширением jpg Таким образом если я вас правильно понял, то выражение /[+=\\].*\.(?!jpg$)/ не ловит случай, когда файл будет с расширением jpg, НО при этом будет содержать символы - правильно? to Gvozd: Вы совершенно правы. Как только появится время, обязательно займусь, но пока вынужден пользоваться благами цивилизации и не гнушаюсь запросами вопрос-ответ. |
Это
Цитата:
Цитата:
|
Определился - в начале перемудрил.Конечная задача:
не хочу чтобы в названии файла содержались символы -хочу чтобы файлы содержали ТОЛЬКО расширение jpg|jpeg|JPG|JPEG Очень хочу чтобы это было в одном выражении (все...больше ничего не хочу :) ). Еще раз спасибо за будущий ответ! |
/^[^+=\\]+\.jpe?g$/i |
вообще-то тебе должно хватить
/\.jpe?g$/i зачем тебе запрешать пользователю использовать символы? однажды сам на такое наткнешься и прийдется файл переименовывать |
Часовой пояс GMT +3, время: 23:59. |