Я пытаюсь извлечь ссылку, которая говорит 'rel = "next"' из строки ниже. Проблема в том, что порядок четырех может измениться, в зависимости от того, существует ли ссылка на «предыдущий» или «следующий». Таким образом, я не могу использовать Regex или разбивать на массив строк и надежно получить ссылку.Как извлечь данные скобки из строки
Вот строка:
<http://v4-api.prod.emailanalyst.com/v4/competitive/search?Authorization={API_KEY}&mobileReady=true&qd=between:20150101000000,20150101060000&onlyCommercial=true&hasCreative=true&page=0&per_page=100>; rel="first",<http://v4-api.prod.emailanalyst.com/v4/competitive/search?Authorization={API_KEY}&mobileReady=true&qd=between:20150101000000,20150101060000&onlyCommercial=true&hasCreative=true&page=20&per_page=100>; rel="last",<http://v4-api.prod.emailanalyst.com/v4/competitive/search?Authorization={API_KEY}&mobileReady=true&qd=between:20150101000000,20150101060000&onlyCommercial=true&hasCreative=true&page=1&per_page=100>; rel="next"
И мне нужно, чтобы получить эту строку:
<http://v4-api.prod.emailanalyst.com/v4/competitive/search?Authorization={API_KEY}&mobileReady=true&qd=between:20150101000000,20150101060000&onlyCommercial=true&hasCreative=true&page=1&per_page=100>; rel="next"
Вот читаемая версия:
<http://v4-api.prod.emailanalyst.com/v4/competitive/search?Authorization={API_KEY}&mobileReady=true&qd=between:20150101000000,20150101060000&onlyCommercial=true&hasCreative=true&page=0&per_page=100>; rel="first",
<http://v4-api.prod.emailanalyst.com/v4/competitive/search?Authorization={API_KEY}&mobileReady=true&qd=between:20150101000000,20150101060000&onlyCommercial=true&hasCreative=true&page=20&per_page=100>; rel="last",
<http://v4-api.prod.emailanalyst.com/v4/competitive/search?Authorization={API_KEY}&mobileReady=true&qd=between:20150101000000,20150101060000&onlyCommercial=true&hasCreative=true&page=1&per_page=100>; rel="next"
И в конечном итоге извлечь только ссылку для Запрос API. Я попытался разделить массив на ,
, однако URL-адрес может содержать ,
, что также ненадежно. Спасибо!
Не могли бы вы прояснить ситуацию? Что вы пытаетесь сделать точно? – Maljam
Я думаю, вы можете использовать 'find' с [lookahead] (http://www.regular-expressions.info/lookaround.html), если все разделены запятой, как в этой демонстрации, в regex101: [' <[^>] +> (? = [^,] *? отн = "следующий)'] (https://regex101.com/r/gZ7iV0/2) –