Захват значения слева от строки запроса с помощью 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'
----------------------------------------------------------------------