RegEx найти и заменить имя файла в файле SQL через Adobe Brackets

Я пытаюсь найти все ТОЛЬКО имена файлов, без путей, из файла SQL с помощью RegEx. Скажем так, я пытаюсь найти и заменить свои результаты с помощью Adobe Brackets Заменить функцию. Каким будет RegEx для этого?

Файл SQL будет содержать сотни очень длинных строк, например:

(493, 179, '_wp_attached_file', '2014/08/The_Image_Name_Here-004.jpg'),
(494, 179, '_wp_attachment_metadata', 'a:5:
    {s:5:"width";i:365;s:6:"height";i:205;s:4:"file";s:31:"2014/08/The_Image_Name_Here-004.jpg";s:5:"sizes";a:6:
    {s:9:"thumbnail";a:4:
    {s:4:"file";s:31:"The_Image_Name_Here-004-139x100.jpg";s:5:"width";i:139;s:6:"height";i:100;s:9:"mime-type";s:10:"image/jpeg";}s:6:"medium";a:4:
    {s:4:"file";s:31:"The_Image_Name_Here-004-240x134.jpg";s:5:"width";i:240;s:6:"height";i:134;s:9:"mime-type";s:10:"image/jpeg";}s:15:"featured-medium";a:4:
    {s:4:"file";s:31:"The_Image_Name_Here-004-230x160.jpg";s:5:"width";i:230;s:6:"height";i:160;s:9:"mime-type";s:10:"image/jpeg";}s:13:"featured-head";a:4:
    {s:4:"file";s:31:"The_Image_Name_Here-004-365x193.jpg";s:5:"width";i:365;s:6:"height";i:193;s:9:"mime-type";s:10:"image/jpeg";}s:4:"icon";a:4:
    {s:4:"file";s:29:"The_Image_Name_Here-004-81x87.jpg";s:5:"width";i:81;s:6:"height";i:87;s:9:"mime-type";s:10:"image/jpeg";}s:10:"icon-large";a:4:
    {s:4:"file";s:31:"The_Image_Name_Here-004-120x131.jpg";s:5:"width";i:120;s:6:"height";i:131;s:9:"mime-type";s:10:"image/jpeg";}}s:10:"image_meta";a:10:
    {s:8:"aperture";i:0;s:6:"credit";s:0:"";s:6:"camera";s:0:"";s:7:"caption";s:0:"";s:17:"created_timestamp";i:0;s:9:"copyright";s:0:"";s:12:"focal_length";i:0;s:3:"iso";i:0;s:13:"shutter_speed";i:0;s:5:"title";s:0:"";}}'
),

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

Выражение, которое я пробовал, таково:

/(?=\/|"|').*?(\.jpg)/g

И я ожидаю найти их в приведенном выше образце:

The_Image_Name_Here-004.jpg
The_Image_Name_Here-004.jpg
The_Image_Name_Here-004-139x100.jpg
The_Image_Name_Here-004-240x134.jpg
The_Image_Name_Here-004-230x160.jpg
The_Image_Name_Here-004-365x193.jpg
The_Image_Name_Here-004-81x87.jpg
The_Image_Name_Here-004-120x131.jpg

Но мой результат заканчивается так:

http://refiddle.com/refiddles/54a94f7075622d09faf30c00

В любом случае я могу получить только имена файлов (включая расширение)?


person Giraldi    schedule 04.01.2015    source источник
comment
Регулярное выражение какого языка вы используете?   -  person theonlygusti    schedule 04.01.2015
comment
Я не совсем уверен, но думаю, что Adobe Brackets использует Javascript.   -  person Giraldi    schedule 04.01.2015


Ответы (1)


Если вы используете регулярное выражение с просмотром назад (то есть, а не javascript), вы можете использовать это регулярное выражение:

/(?<="|').+\.jpg(?="|')/g

В противном случае вы можете просто использовать:

/[\w-]+\.jpg/g

Второй на самом деле кажется мне гораздо более элегантным, вот он в действии.

person theonlygusti    schedule 04.01.2015
comment
Это не javascript, поэтому lookbehind не будет работать, но второй работает! Ваше здоровье! - person Giraldi; 04.01.2015
comment
@gmaggio Я думаю, вы имели в виду: это это javascript, поэтому просмотр назад не сработает;) - person theonlygusti; 04.01.2015