Если здесь мы хотим захватить /
, то мы можем просто попробовать ([\/]+)
.Должны быть и другие выражения для извлечения one
, такие как:
(?:\/[a-z]+\/)(.+?)(?:\/.+)
, и наш код может выглядеть следующим образом:
regexp_extract(filepath, '(?:\/[a-z]+\/)(.+?)(?:\/.+)', 2)
или
regexp_extract(filepath, '(?:\/.+?\/)(.+?)(?:\/.+)', 2)
Отсеки
В этом случае мы не собираем то, что стоит за one
, используя группу без захвата:
(?:\/[a-z]+\/)
, затем мы фиксируем one
, используя:
(.+?)
и, наконец, мы добавляем правую границу после one
в другой группе без захвата:
(?:\/.+)
Схема RegEx
jex.im визуализирует регулярные выражения:
В зависимости от того, какая косая черта может находиться one
Мы можем изменить наше выражение.Например, в этом случае это выражение также может работать:
(?:\/.+?\/)(.+?)(?:\/.+)