以下の文字列から 'rel = "next"というリンクを抽出しようとしています。問題は、「前」または「次へ」へのリンクが存在するかどうかに応じて、4つの順序を変更できることです。したがって、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=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"
ここで読めるバージョンですAPIリクエスト。私は,
で配列を分割しようとしましたが、URLに,
が含まれている可能性もあります。 ありがとう!
String[] elements = str.split(",(?=<http:)");
あなたは明確にしてください。何を正確にしようとしていますか? – Maljam
regex101のデモのようにすべてがコンマ区切りの場合、[lookahead](http://www.regular-expressions.info/lookaround.html)で 'find'を使うことができると思います:[' <[^>] +> ?= [^、] *?rel = "next" '](https://regex101.com/r/gZ7iV0/2) –