Регулярные выражения на php

Проверка соответствия введенных текстовых данных шаблону, описанному с использованием регулярных выражений. Для проверки используется встроенная в php функция preg_match_all(), выполняющая поиск всех соответствий шаблону в исходном тексте. Если использовать функцию preg_match(), то поиск будет продолжаться до первого совпадения, а результатом ее работы будет 0 (совпадений не найдено) или 1 (найдено одно совпадение). Регулярное выражение следует поместить между двумя символами слэш: /regex/. Для регистронезависимого сравнения необходимо в конце строки добавить модификатор i: /regex/i или в начале выражения добавить модификатор (?i): /(?i)regex/i.

Синтаксис регулярных выражений


Исходные данные:

Регулярное выражение:

Исходный php код:

  <?php
   $errors = array();     

   if (isset($_REQUEST["callback"]))
      {
        if (validate_data())
            process_data();
        else
            display_errors();
      }

   display_form();

   function validate_data()
   {
     global $errors;

     if ($_REQUEST["text_data"]=="")
     {
      $errors[]="<p>Необходимо ввести исходные данные!</p>"; 
     } 

     if ($_REQUEST["regex"]=="")
     {
      $errors[]="<p>Необходимо ввести регулярное выражение!</p>"; 
     } 

     return (count($errors)==0) ? true : false;
   }      

   function display_errors()
   {
     global $errors;
     
     foreach ($errors as $err)
     {
       echo $err, "<br/>";  
     }
   }
 
   function process_data()
   {
     echo "<b>Результаты:</b><br/>";

     $text_data = $_REQUEST["text_data"];
     $regex = $_REQUEST["regex"];
     $result = preg_match_all($regex, $text_data, $matches);

     if ($result)
     {
       echo "Найдено ".$result." совпадений:<br/>";

       for ($i=0;$i<$result;$i++) 
           echo "$i: ".$matches[0][$i]."<br/>";
     }
     else 
     {
       echo "Текст не соответствует введенному выражению!";
     } 
   }

   function display_form()
   {
     $text_data = isset($_REQUEST["text_data"]) ? $_REQUEST["text_data"] : "";
     $regex = isset($_REQUEST["regex"]) ? $_REQUEST["regex"] : "";

     echo "<form method='post'>";
     echo "<b>Исходные данные:</b><br/>";
     echo "<textarea name='text_data' cols='100' rows='4'>".$text_data."</textarea>";
     echo "<br/>";
     echo "<b>Регулярное выражение:</b><br/>";
     echo "<textarea name='regex' cols='100' rows='4'>".$regex."</textarea>";
     echo "<br/>";
     echo "<input type='submit' value='Проверить'/>";
     echo "<input name='callback' type='hidden' value='data'/>";
     echo "</form>";
   } 

  ?>