正規表現を使用して「http://domain.com/some-more-path」から「ドメイン」を取得しようとしています:
/(.*)(http|https):\/\/(.*)(\/)(.*)/ and then $3
私の問題は、「ドメイン」の代わりに「ドメイン/いくつかのパス」を取得することです。私は何を間違っていますか?
正規表現を使用して「http://domain.com/some-more-path」から「ドメイン」を取得しようとしています:
/(.*)(http|https):\/\/(.*)(\/)(.*)/ and then $3
私の問題は、「ドメイン」の代わりに「ドメイン/いくつかのパス」を取得することです。私は何を間違っていますか?
多分このように:
/([^:]*):\/\/([^\/]*)(.*)/
これで、$2 は単なるドメインになります。
変化する
/(.*)(http|https):\/\/(.*)(\/)(.*)/
に
/(.*)(http|https):\/\/(.*?)(\/)(.*)/
問題はその.*
部分です。*
貪欲な量指定子であり、可能な限り多くの文字を消費します。?
の後ろに a を置く*
と、修飾子の動作を貪欲ではないものに切り替えます (つまり、必要なだけ文字を消費します)。