Минимальное значение
Предположим, у меня есть строка as1das2das3D
. Я хочу извлечь все от буквы a
до буквы D
. Есть три различных подстроки, которые соответствуют этому - я хочу самое короткое / самое правое соответствие, то есть as3D
.
Одно решение, которое я знаю, чтобы сделать эту работу - stringr::str_extract("as1das2das3D", "a[^a]+D")
Реальный пример
К сожалению, я не могу заставить это работать с моими реальными данными. В моих реальных данных у меня есть строка с (потенциально) двумя URL-адресами, и я пытаюсь извлечь тот, за которым сразу следует rel=\"next\"
. Итак, в приведенной ниже строке примера я хотел бы извлечь URL https://abc.myshopify.com/ZifQ
.
foo <- "<https://abc.myshopify.com/YifQ>; rel=\"previous\", <https://abc.myshopify.com/ZifQ>; rel=\"next\""
# what I've tried
stringr::str_extract(foo, '(?<=\\<)https://.*(?=\\>; rel\\="next)') # wrong output
stringr::str_extract(foo, '(?<=\\<)https://(?!https)+(?=\\>; rel\\="next)') # error