PHPでの正規表現による文字列全体のチェック

しばしばpreg_matchは、 文字列全体が正規表現に一致するかどうかを チェックするために使用されます。 この場合、正規表現の先頭にキャレット^を、 末尾にドル記号$を置く必要があります。 これにより、パターンが文字列全体に マッチする必要があることを指定します。

例として、文字列が完全に'a'の文字だけで 構成されているかどうかを調べてみましょう:

php<?php
  echo preg_match('#^a+$#', 'aaaa'); // 1を出力
  echo preg_match('#^a+$#', 'aaab'); // 0を出力
?>
Задание 1

渡された文字列がドメイン名かどうかを 判定してください。テストには以下の 文字列を使用してください:

php<?php
  $arr[] = 'site.ru';          // +
  $arr[] = 'site.com';         // +
  $arr[] = 'my-site.com';      // +
  $arr[] = 'my-cool-site.com'; // +
  $arr[] = 'my_site.com';      // +
  $arr[] = 'site123.com';      // +
  $arr[] = 'site.travel';      // +
  $arr[] = 'si$te.com';        // -
  $arr[] = 'site.r';           // -
?>
Задание 2

渡された文字列がメールアドレスかどうかを 判定してください。テストには以下の 文字列を使用してください:

php<?php
  $arr[] = 'addr@mail.ru';    // +
  $arr[] = 'addr123@mail.ru'; // +
  $arr[] = 'my-addr@mail.ru'; // +
  $arr[] = 'my_addr@mail.ru'; // +
  $arr[] = 'addr@site.ru';    // +
  $arr[] = 'addr.ru';         // -
  $arr[] = 'addr@.ru';        // -
  $arr[] = 'my@addr@mail.ru'; // -
?>