Захват значения слева от строки запроса с помощью regsub

Вот пример URL:

https://mydomainname.net/productimages/1679/T716AP1_lg.jpg?w=125&h=125&tstamp=05/19/2016%2015:08:30

Что я хочу от этого просто:

/productimages/1679/T716AP1_lg

Мой текущий код:

regsub(req.url, "^/(.*)\.(.*)$", "\1")

Это прекрасно работает, пока в моем примере нет ссылки на несколько параметров строки запроса, кажется, & вызывает у меня проблемы.

2 ответа

Решение

Попробуйте вместо этого записать не точки / вопросы:

regsub(req.url, "^http://.*?/([^?.]+).*$", "\1")

Описание

^https:\/\/[^\/]+\/([^.]*)\.jpg

Визуализация регулярных выражений

Это выражение будет делать следующее:

  • найти подстраницу и имя файла по заданной ссылке, предполагая, что имя файла является jpg

пример

Live Demo

https://regex101.com/r/nZ7eX7/1

Пример текста

https://mydomainname.net/productimages/1679/T716AP1_lg.jpg?w=125&h=125&tstamp=05/19/2016%2015:08:30

Образцы матчей

productimages/1679/T716AP1_lg

объяснение

NODE                     EXPLANATION
----------------------------------------------------------------------
  ^                        the beginning of the string
----------------------------------------------------------------------
  https:                   'https:'
----------------------------------------------------------------------
  \/                       '/'
----------------------------------------------------------------------
  \/                       '/'
----------------------------------------------------------------------
  [^\/]+                   any character except: '\/' (1 or more
                           times (matching the most amount possible))
----------------------------------------------------------------------
  \/                       '/'
----------------------------------------------------------------------
  (                        group and capture to \1:
----------------------------------------------------------------------
    [^.]*                    any character except: '.' (0 or more
                             times (matching the most amount
                             possible))
----------------------------------------------------------------------
  )                        end of \1
----------------------------------------------------------------------
  \.jpg                      '.jpg'
----------------------------------------------------------------------
Другие вопросы по тегам