Как составить правильно регэксп

Тема в разделе "Регулярные выражения", создана пользователем Flock, 22 янв 2008.

Статус темы:
Закрыта.
Модераторы: xpert13
  1. Flock

    Flock Постоялец

    Регистр.:
    16 июн 2007
    Сообщения:
    142
    Симпатии:
    44
    PHP:
    $reg "/\d\d-\d\d/";

    $regexp[]="99";
    $regexp[]="9999";
    $regexp[]="41-08"// Вот это строчка, остальное отбрасывается
    $regexp[]="911-07";
    $regexp[]="911-073434";
    $regexp[]="91-072323";
    $regexp[]="9107";
    $regexp[]="911-07-";
    $regexp[]="91107-";
    $regexp[]="-91107";


        for(
    $i=0;$i<count($regexp);$i++)
        {
            if (
    preg_match($reg,$regexp[$i]) == 0)
            {
                echo 
    "Error:".$regexp[$i]."<br>";
            }
            else
            {
                echo 
    "Good:".$regexp[$i]."<br>";
            }
        }
    Как составить регулярное выражение чтобы правильной была только ($regexp[]="41-08";) cтрока. Все уже попробовал [0-9]{2}? \d{2} \d{2}...

    Сделал сам, после того как топик создашь получаться начинает:)
    $reg = "/^[0-9]{2}?\-[0-9]{2}?$/";
     
  2. petrovvasily

    petrovvasily Прохожие

    можно короче:
    PHP:
    $reg "/^\d{2}\-\d{2}$/";
    такая регулярка подразумевает, что строке должна состоять только из такой комбинации (ХХ-ХХ). если нужно, чтобы искала подстроку надо вместо ^ и $ писать разделители
     
Статус темы:
Закрыта.