Найдите все пути JPG в файлах HTML и преобразуйте их во все строчные буквы.

У меня есть очень базовое понимание регулярных выражений. Я искал и искал в Интернете для этого.....

У меня есть Linux-сервер, которому нравятся только имена файлов в нижнем регистре, и у меня по дурости есть имена файлов изображений в заголовке!

Я хочу найти все пути jpg в моих файлах HTML и преобразовать их во все строчные буквы с помощью Regex.

My-File-Name1.jpg должно быть my-file-name1.jpg

Я думаю, мне нужно регулярное выражение, чтобы найти их все, и другое, которое заменяет их преобразованными в нижний регистр.

Любая помощь?

РЕДАКТИРОВАТЬ

@Sniffer дал мне регулярное выражение, которое получает путь к имени файла.

В notepad ++ найдите и замените с помощью регулярного выражения. Вы можете использовать

([\w/-]+)\.jpe?g, чтобы найти пути к изображениям и

: \L\1 для перехода к нижнему регистру и использования замены

\U\2 для перехода к более высокому регистру с помощью замены

Я нашел регулярное выражение нижнего/верхнего регистра здесь http://sourceforge.net/p/notepad-plus/discussion/331754/thread/ecb11904/


person H4NIO    schedule 21.08.2013    source источник
comment
Все ли эти имена файлов содержат только буквенные символы, такие как a, b, c и т.д..   -  person Ibrahim Najjar    schedule 21.08.2013
comment
@Sniffer нет, у них тоже есть тире и цифры Queen-of-Hearts-1.jpg. Я отредактировал свой вопрос, чтобы включить это.   -  person H4NIO    schedule 21.08.2013


Ответы (1)


Обычно я бы посоветовал использовать синтаксический анализатор HTML, который является лучшим инструментом для работы здесь, но, поскольку вам нужны только файлы jpg, вы можете найти их все, используя следующее:

([\w/-]+)\.jpe?g
   ^
   |
   |
 As you can see I have added the forward slash / and the dash - to the
 character class, WARNING: the dash - should always be the last character in the
 class, keep that in mind if you have more special characters.

Вам нужно будет сопоставить это глобально в вашем файле.

Что касается преобразования, это невозможно сделать с помощью регулярного выражения. Вам нужно будет вызвать API, который преобразует строку в нижний регистр, и использовать его для захваченного groub $1.

person Ibrahim Najjar    schedule 21.08.2013
comment
Это захватывает только последний раздел, например -Card.jpg вместо img/Rider-Waite/13-Queen-of-Cups-Minor-Tarot-Card.jpg. Вероятно, это моя вина, что я не добавил косую черту для каталогов файлов - извините. - person H4NIO; 21.08.2013
comment
Потрясающе! Спасибо. Я обнаружил, что вы можете использовать регулярное выражение в блокноте ++, которое изменит результаты поиска на нижний регистр. - person H4NIO; 21.08.2013
comment
Да! Я так счастлив Спасибо @Sniffer :) Вы спасли несколько часов/дней моей жизни! - person H4NIO; 21.08.2013
comment
@Hannah Пожалуйста, примите ответ, если это так. - person Ibrahim Najjar; 21.08.2013