この場合は URI モジュールを使用するというアドバイスに強く同意します。また、正規表現が得意だとは思いません。それでも、あなたが求めていることを実行する 1 つの可能な方法を示すことは価値があるようです。
test_url1 = 'https://www.example.com/some/page?user=1&email=joe@schmoe.org'
test_url2 = 'http://test.com/'
test_url3 = 'http://test.com'
regex = /^https?:\/\/[^\/]+(.*)/
regex.match(test_url1)[1]
# => "/some/page?user=1&email=joe@schmoe.org"
regex.match(test_url2)[1]
# => "/"
regex.match(test_url3)[1]
# => ""
最後のケースでは、URL に末尾がない'/'
ため、結果は空の文字列になることに注意してください。
正規表現 ( /^https?:\/\/[^\/]+(.*)/
) は、文字列が ( ^
) http
( http
) で始まり、オプションで( ) が続き、s
( ) が続き、その後に少なくとも 1 つの非スラッシュ文字 ( ) が続き、その後に 0 個以上の文字が続き、それらをキャプチャしたいことを示します。文字 ( )。s?
://
:\/\/
[^\/]+
(.*)
この例と説明が参考になることを願っています。この場合、正規表現を実際に使用しないことを再度お勧めします。URI モジュールは使い方が簡単で、はるかに堅牢です。