Я имею дело с кучей текстовых файлов, которые относятся к именам файлов изображений. Эти имена файлов были дезинфицированы (сделанные в нижнем регистре и пробелы заменены дефисами), но текст, относящийся к ним, не был.Regex: соответствие всех вхождений между указанными строками
Мне нужно преобразовать строки так:
(image: uploaded IMAGE.jpg caption: this is my caption)
(image: uploaded IMAGE copy.jpeg caption: this is my caption)
(image: IMG_6087.png caption: this is my caption)
(image: IMG_6087 copy.gif)
(image: IMG_9999_copy.jpg)
(image: somehow, a comma.jpg)
(image: other ridic'ulous characters!.jpg)
к:
(image: uploaded-image.jpg caption: this is my caption)
(image: uploaded-image-copy.jpeg caption: this is my caption)
(image: img_6087.png caption: this is my caption)
(image: img_6087-copy.gif)
(image: img_9999_copy.jpg)
(image: somehow-a-comma.jpg)
(image: other-ridiculous-characters.jpg)
Эти строки являются частями больших блоков текста, но все на своих линиях, например, так:
This is not a short guide to write about art. Go in, out of the window, inside New York’s stars qualities, dreams and schemes. People are gathered together, brewing coffee — you have seen their faces? The artists in Manhattan.
(image: manhattan photo.jpg)
Drive till sunset and say goodbye to your body, because this is not a photograph. I saw sixteen americans, raised by wolves, probably lost in paradise city. I found your head — Do you still want it?
Я использую Возвышенный текст и планировал выполнять несколько Заменить все:
- полоса пробельные
- полосы символов, которые не являются буквенно-цифровой или _ или -
- сделать строчными
Но я не могу управлять, чтобы захватить все экземпляры что-то между этими двумя разделителями.
(?<=^\(image:)[what do I do here??](?=\.jpe?g|png|gif)
Это захватывает все имя файла, поэтому я могу сделать его строчным, используя поиск: '(? <=^\ (Image:) (. *?) (? = \. Jpe? G | png | gif) 'replace:' \ L $ 1' - так, что решает шаг № 3 - но как найти и заменить все пробелы дефисом? –