フィルタリングの目的でカスタム URL 検出器を作成していますが、URL 以外のタイプミスに問題があります。
英語では、ピリオドで区切られた 2 つの文にはスペースが必要ですが、ほとんどの場合、ユーザーはこの規則を順守できません。
プロトコル プレフィックスなしで URL を照合する必要があります。基本的には、ドメイン名と 2 文字または 3 文字の TLD のみです。TLD の 3 文字ルールを超える文字列を除外するにはどうすればよいですか?
例:
youtube.com (should match)
something.This (fragment of a sentence. Should not match because "This" contains 4 chars.)
これらの文字列は干し草の山 (開始、中間、終了) のどこにでもある可能性があることに注意してください。私の現在の正規表現はこれです:
.'((https?|ftp)://)?' // Protocol (optional)
.'(www(\.|\%2[Ee]))?' // www prefix (optional)
.'([a-zA-Z-]+(\.|\%2[Ee]))+' // domain strings separated by dot
.'([a-zA-Z-]{2,3})' // tld 2 or 3 chars (should not be followed by another alpha)
.'([/\?]\S*)*' // subdirectory or GET (optional)