2016-05-20 6 views
1

Вот пример URL:значение захвата слева от строки запроса с использованием regsub

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") 

Что работает отлично, пока в моем примере выше не указано несколько параметров строки запроса, кажется, что & is cau Пойте мне проблемы.

+0

есть всегда, по крайней мере один параметр запроса? – Bohemian

+0

да, есть причины для голосования? – Slee

+0

Я не голосовал. Вопрос выглядит хорошо для меня. – Bohemian

ответ

2

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

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

Описание

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

Regular expression visualization

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

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

Пример

Демо

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' 
----------------------------------------------------------------------