URL の照合: 包括的な正規表現アプローチ
入力から URL を抽出する場合、さまざまな処理に対応できる堅牢な正規表現を用意することが重要です。シナリオ。この場合、指定された正規表現は、「http」または「https」プロトコル プレフィックスのない URL と一致しません。この課題に対処するために、次の 2 つの代替正規表現を提案します。
HTTP/HTTPS プロトコルが必要な URL の場合:
https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)
HTTP を使用しない URL の場合/HTTPSプロトコル要件:
[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)
これらの正規表現は、プロトコル プレフィックスの有無にかかわらず、URL を効果的にキャプチャします。実験目的の場合は、http://regexr.com?37i6s (プロトコル プレフィックスあり) および http://regexr.com/3e6m0 (プロトコル プレフィックスなし) でこれらの式をテストできます。
以下は例です。 JavaScript 実装:
const expression = /[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/gi; const regex = new RegExp(expression); const t = 'www.google.com'; if (t.match(regex)) { alert("Successful match"); } else { alert("No match"); }
以上がプロトコルプレフィックスの有無にかかわらず URL を照合する堅牢な正規表現を作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。