私はドメイン名(example1.commerce)は、次の正規表現にマッチしない理由を把握しようとしている:PHPの単純なドメインの正規表現
if (!preg_match('([a-z\d]){1,63}(\.)([a-z\d]){2,16}',$_POST['domain']))
{
echo '<p>Error: domain is not valid.</p>';
}
else {echo '<p>Domain looks good.</p>';}
パターンが唯一のドメインと一致する必要があります(1〜 63文字)とドメインサフィックス(2〜16文字)。
正規表現の区切り文字 - '/([a-z \ d]){1,63}(\。)([a-z \ d]){2,16} /' 'を使用します。おそらくアンカーと '/ i'修飾子を使い、冗長グループを削除します:'/^ [az \ d] {1,63} \。[az \ d] {2,16} $/i'' –
@WiktorStribiżewAh答えとして投稿してください、私は受け入れます。何らかの理由で 'preg_match'で表現を組み合わせたとき、誰かの投稿からこれが欠けていたと思います。 – John
正規表現の区切り文字が欠落していたとはどういう意味ですか?それだけですか?または、アンカー/大文字と小文字を区別しない修飾子も必要ですか?ご確認ください。 –