が、私はのようなURLをしたとします抽出フィールド
https://example.com/myproject/index-dev.html?_ijt=hsdlgh8h5g8hh489sajoej&a=102&b=a%20m&c=45&d=all&e=all
またはそれのようローカルホスト上のウェブページのことがあります
localhost:63342/my project/index-dev.html?_ijt=hsdlgh8h5g8hh489sajoej&a=102&b=a%20m&c=45&d=all&e=all
と私は抽出するためにきましたクエリフィールド(後に現れる「?」)これらのURLから2次元配列で、次のよう:
_ijt | hsdlgh8h5g8hh489sajoej
a | 102
b | a m
c | 45
d | all
e | all
「B」フィールドに、私は「%20」のwiを交換してきたことに注意してくださいスペース。 _ijt、a、b、c、d、eなどのフィールドは、番号や名前が異なる場合があります。たとえば、 'a'は 'city'とすることができます。 これまでのところ、正規表現を使って '?'の後の部分を抽出しました。 split( "&")メソッドを使用して文字列を複数の文字列に分割します。 コード -
val url=localhost:63342/my project/index-dev.html?_ijt=hsdlgh8h5g8hh489sajoej&a=102&b=a%20m&c=45&d=all&e=all
val pattern="""(http|htpps)([A-Za-z0-9\:\/\%\-\.]*)\?""".r
val temp_url=pattern.replaceFirstIn(url,"")
val fields=temp_url.split("&")
println(fields.foreach(println))
、出力は次のとおりです。
_ijt=hsdlgh8h5g8hh489sajoej
a=102
b=a%20m
c=45
d=all
e=all
しかし、これを行うには正しい方法ではないようです。どんな助け?
が、URLの末尾に仮定し、私はそれが望ましくない 'エンジン=すべての#のclinic'が表示されます'#のclinic'を追加します。さらに、 'fields.foreach(println)'を使ってこれらのフィールドを表示しています。しかし、私は別の変数に各フィールドを格納したい。どうすればこれを達成できますか? – Ishan
'java.net.URI'を使用すると、そのようなURLを確実に解析できます。これはScala.jsでサポートされています( 'java.net.URL'はありません)。 – sjrd