Mam folder na moim serwerze, który zawiera kilka obrazów zmienionych przez WordPress. Chcę przesłać tylko obrazy, których rozmiar nie jest zmieniany. Oto przykład:
Nazwy plików:
2CVictoria_and_Albert_Museum_London-708x400.jpg
2CVictoria_and_Albert_Museum_London-336x190.jpg
2CVictoria_and_Albert_Museum_London.jpg
Chcę tylko pliki, które kończą się na .jpg bez -708x400 i 336x190
2CVictoria_and_Albert_Museum_London.jpg
Jak utworzyć filtr w Filezilli, który zignoruje wszystkie obrazy, których rozmiar został zmieniony i pokaże tylko oryginalny obraz? Jeśli możesz umieścić wszystkie reguły filtrowania.
Odpowiedzi:
2 dla odpowiedzi № 1Na podstawie twoich kryteriów powinno to działać.
^[[:alnum:]_]+.jpg$
i po żądanej edycji:
^[[:alnum:]_-]+[^-0-9x]+.jpg
a po drugiej żądanej edycji:
^[[:alnum:]_-]+[^x]{5}.jpg
W tej chwili nie mam zainstalowanej Filezilli, ale Filezilla używa wyrażeń regularnych POSIX, co oznacza, że nie możemy używać przeglądarek, ale nie powinno to stanowić problemu.
Wyrażenie używa klasy znaków [[:alnum:]_]
z kwantyfikatorem, pozwalającym dopasować dowolną liczbę liter, cyfr i podkreśleń. Następnie dopasowujemy kropkę, jpg i koniec łańcucha, więc każdy sufiks używający myślnika nie powiedzie się.
W drugim wyrazie, przed .jpg
, staramy się dopasować dowolną liczbę znaków, które nie są myślnikami, cyframi ani znakami xs.
W trzecim wyrażeniu [^x]{5}
jest trochę hack: zapewnia, że nie ma znaku „x” w ostatnich pięciu znakach, dlatego wyklucza pliki kończące się na 300x225.jpg
na przykład. Wykluczyłoby to również niektóre fałszywe negatywy, takie jak myphotox.jpg
jak również krótkie pliki, takie jak abc.jpg
Jednym ze sposobów obejścia problemu z krótkim plikiem jest zaakceptowanie wszystkich czteroliterowych nazw plików, które nie zawierają xs. Nadal jest to hack.
^[[:alnum:]_-]+[^x]{5}.jpg|^[^x]{1,4}.jpg
Jeśli są wyjątki, daj mi znać, abyśmy mogli ulepszyć wyrażenie regularne.