-1

フィルタリングの目的でカスタム 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)
4

1 に答える 1