モジュールのレッスン (3/4)
URLとIPの抽出
フリー テキスト (ログ、記事、ダンプ) では、URL を抽出するのが一般的です。 および IP アドレス。両方の堅牢なパターンを見てみましょう。
http/https URL
Pattern: https?:\/\/[\w.-]+(?:\:\d+)?(?:\/[^\s]*)?https?:\/\/-- スキーム (sはオプション)。[\w.-]+-- ホスト (ドメイン、サブドメイン、おそらくlocalhost)。(?:\:\d+)?-- オプションのポート。(?:\/[^\s]*)?-- 最初の空白までのオプションのパス。
https://example.com、http://localhost:3000/api/users、をキャプチャします。
https://docs.dev/path?query=value。
IPv4
IPv4 は、ドットで区切られた 4 つの 10 進数オクテットです。
Pattern: \b(?:\d{1,3}\.){3}\d{1,3}\b「十分な」 バージョン: 次のような無効な値も受け入れます。
999.999.999.999。 厳密バージョンの場合は、範囲の変更が必要です
(25[0-5]|2[0-4]\d|[01]?\d\d?)、これはかなり長いです。
Pattern (strict): \b(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\b正確さと簡潔さ
URL または IP を一致させるには、バランス パターン許容値が必要です。厳密な IP バリデーターは、255 を超えるオクテットがないことを検証します。一方、実用的なエクストラクターは通常、単純化されたパターンを探し、詳細な検証を専用のコードに委任します。
試してみてください
テキスト内のすべての http または https URL を検索します。スキーム + ホスト + オプションのパス。
ヒントを表示
https?オプションの s、ドメインの [\\w.-]+、およびグループ (?:\\/[^\\s]*)?オプションのパスの場合。
3 回の試行後に解決策が利用可能になります
復習演習
すべての IPv4 (ドットで区切られた 4 つの 10 進数オクテット) を検索します。寛容バージョン、0-255 チェックなし。
ヒントを表示
(?:\\d{1,3}\\.){3} を使用して「オクテット + ドット」を 3 回繰り返し、最後に \\d{1,3} を繰り返します。
3 回の試行後に解決策が利用可能になります
追加の課題
Find all IPv4 addresses in the format `X.X.X.X` (composed of four 1-to-3 digit numbers separated by dots).
ヒントを表示
Use \b to enforce boundaries, (?:\d{1,3}\.){3} to repeat the octet and dot three times, and finally \d{1,3}.
3 回の試行後に解決策が利用可能になります