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

Статус
В этой теме нельзя размещать новые ответы.

Flock

Постоялец
Регистрация
15 Июн 2007
Сообщения
139
Реакции
45
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>";
		}
	}

Error:99
Error:9999
Good:91-07
Good:911-07
Good:911-073434
Good:91-072323
Error:9107
Good:911-07-
Error:91107-
Error:-91107

Как составить регулярное выражение чтобы правильной была только ($regexp[]="41-08";) cтрока. Все уже попробовал [0-9]{2}? \d{2} \d{2}...

Сделал сам, после того как топик создашь получаться начинает:)
$reg = "/^[0-9]{2}?\-[0-9]{2}?$/";
 
можно короче:
PHP:
$reg = "/^\d{2}\-\d{2}$/";
такая регулярка подразумевает, что строке должна состоять только из такой комбинации (ХХ-ХХ). если нужно, чтобы искала подстроку надо вместо ^ и $ писать разделители
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху