Если вы хотите совпадать только с imagename
в вашей строке, используйте
[^/]+(?=\.[^/.]*$)
См. Демонстрационную версию regex
Если расширение может быть необязательным использование
[^/]+(?=(?:\.[^/.]*)?$)
См. эту демонстрационную версию регулярного выражения
Обратите внимание, что в зависимости от того, как вы объявляете регулярное выражение, вам может понадобиться экранировать /
символов внутри шаблонов.
Подробности
[^/]+
- один или несколько символов, отличных от /
([^/]
- это ( отрицательный класс символов ) (?=(?:\.[^/.]*)?$)
- положительный прогноз, требующий немедленного соответствия следующих шаблонов справа от текущего местоположения: \.
- точка [^/.]*
- ноль или более символов, отличных от /
и .
$
- конец строки.
* (?:\.[^/.]*)?
является необязательной группой без захвата, вся последовательность шаблонов внутри является необязательной.