2023 © RegexOne
メール | Twitter
ネットワーク上のファイルやリソースを扱う際、URIやURLに遭遇することがよくあります。これらは直接解析して利用できます。ほとんどの標準ライブラリには、これらの識別子を解析および構築するためのクラスがありますが、ログや大規模なテキストコーパス内でそれらにマッチさせる必要がある場合は、正規表現を使用することで、構造化された形式から情報を簡単に抽出できます。
URI (Uniform Resource Identifier) は、一般的にスキーム、ホスト、ポート (オプション)、およびリソースパスで構成されるリソースの表現です。それぞれ以下にハイライト表示されます。
http://regexone.com:80/page
スキームは通信に使用するプロトコルを記述し、ホストとポートはリソースのソースを記述し、フルパスはソース内のリソースの場所を記述します。
以下の演習では、リストされているすべてのリソースのプロトコル、ホスト、およびポートを抽出してみてください。
| タスク | テキスト | キャプチャグループ | |
| キャプチャ | ftp://file_server.com:21/top_secret/life_changing_plans.pdf | ftp file_server.com 21 | ![]() |
| キャプチャ | https://regexone.dokyumento.jp/lesson/introduction#section | https regexone.com | ![]() |
| キャプチャ | file://:4040/zip_file | file localhost 4040 | ![]() |
| キャプチャ | https://s3cur3-server.com:9999/ | https s3cur3-server.com 9999 | ![]() |
| キャプチャ | market://search/angry%20birds | market search | ![]() |
| 解決策 | 3つのコンポーネントそれぞれにマッチさせる必要があります。
すべてをまとめると、完全な正規表現は(\w+)://([\w\-\.]+)(:(\d+))?となり、探しているすべてのデータをキャプチャできます。 |