Регулярное выражение для извлечения строки

#javascript #regex

#javascript #регулярное выражение

Вопрос:

Я получил следующую строку:

 "url("http://localhost/image/user/temp/n9cec42c939ab461cac7852c267413b1b.jpg")"
 

Как я могу извлечь имя файла с помощью регулярного выражения javascript?

Я попробовал [^/] $, но он сохраняет «) в конце.

Спасибо.

Ответ №1:

Довольно близко к тому, что вы написали

 /[^/] (?=")$)/
 

например

 /[^/] (?=")$)/.exec(s)
 

где s ваш пример строка возвращает правильное имя файла.

(объяснение: с регулярными выражениями форма (?=...) означает что-то, что должно следовать за совпадением, но не должно рассматриваться как часть совпадения).

Ответ №2:

разделите на обратную косую черту, щелкните, чтобы получить последний результат, и удалите ")

 'url("http://localhost/image/user/temp/n9cec42c939ab461cac7852c267413b1b.jpg")'.split('/').pop().replace('")', '')
 

Пример

Или, если регулярное выражение — это только ваша вещь:

 var url = 'url("http://localhost/image/user/temp/n9cec42c939ab461cac7852c267413b1b.jpg")'; 
url.match(/. /(. )")/)[1]; // file name
 

Ответ №3:

 [^/] ")$
 

будет работать на вашем примере. Если это не то, что вам нужно, пожалуйста, укажите более подробную информацию в своем вопросе.

Ответ №4:

С помощью регулярного выражения вы можете использовать:

 'url("http://localhost/image/user/temp/n9cec42c939ab461cac7852c267413b1b.jpg")'.match(//([dw] .[w] )/)[1]
 

предполагая, что ваше имя файла состоит из a-z 0-9 и трехсимвольного расширения