[解決済み] URLの一部を取得する (Regex)
2022-05-11 11:41:24
質問
URLが与えられている(一行)。
http://test.example.com/dir/subdir/file.html
正規表現を使って以下の部分を抽出するにはどうしたらよいでしょうか。
- サブドメイン (test)
- ドメイン (example.com)
- ファイルのないパス(/dir/subdir/)。
- ファイル(file.html)
- ファイル(/dir/subdir/file.html)のあるパス。
- パスを除いたURL ( http://test.example.com )
- (その他、便利だと思うものを追加してください)
以下のようなURLを入力しても正規表現が正しく動作するはずです。
http://example.example.com/example/example/example.html
どのように解決するのですか?
<ブロッククオートをパースして分割するための単一の正規表現。 クエリパラメータを含む完全なURL やアンカーなど
https://www.google.com/dir/1/2/search.html?arg=0-a&arg1=1-b&arg3-c#hash
^((http[s]?|ftp):\/)?\/?([^:\/\s]+)((\/\w+)*\/)([\w\-\.]+[^#?\s]+)(.*)?(#[\w\-]+)?$
RexExのポジション。
url: RegExp['$&'],
protocol:RegExp.$2,
host:RegExp.$3,
path:RegExp.$4,
file:RegExp.$6,
query:RegExp.$7,
ハッシュ:RegExp.8ドル
であれば、さらにホスト('.'区切り)を簡単にパースできます。
何 I は、このような使い方をします。
/*
^(.*:)//([A-Za-z0-9\-\.]+)(:[0-9]+)?(.*)$
*/
proto $1
host $2
port $3
the-rest $4
は、できるだけ具体的に「その他」を解析します。それを1つの正規表現で行うのは、まあ、ちょっとおかしいですよね。
関連
-
[解決済み] 米国通貨RegExの "ベスト "は何か?
-
[解決済み] ブラウザによって異なるURLの最大長とは?
-
[解決済み] リモート Git リポジトリの URI (URL) を変更するには?
-
[解決済み] URI、URL、URNの違いは何ですか?
-
[解決済み] JavaScriptで現在のURLを取得する?
-
[解決済み] ページを再読み込みせずにURLを変更するにはどうすればよいですか?
-
[解決済み] JavaScriptでURLをエンコードする?
-
[解決済み] jQueryで現在のURLを取得する?
-
[解決済み] XHTMLの自己完結型タグを除くオープンタグにマッチするRegEx
-
[解決済み] アプリケーションからAndroidのWebブラウザでURLを開くにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン