Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Поиск повторяющихся символов
 
 автор: hyperion   (13.02.2008 в 20:08)   письмо автору
 
 

Попалась задача следующего вида: имеются строки, состоящие из семи цифр. Необходимо их проверить на совпадение нескольким шаблонов. Например, два шаблона: ABCDCBA и AB000AB, где A, B, C, D цифры от 0 до 9, 0 - ноль. Т.е. это например числа 1234321 (для первого шаблона) и 1200012 (для второго шаблона).
Можно ли данную задачу решить с помощью регулярных выражений и если можно, подскажите, пожалуйста, как.

   
 
 автор: Саня   (14.02.2008 в 00:23)   письмо автору
 
   для: hyperion   (13.02.2008 в 20:08)
 

<?
// 1
preg_match("!^(\d)(\d)(\d)\d\\3\\2\\1$!"$num);

// 2
preg_match("!^(\d)(\d)0{3}\\1\\2$!"$num);

   
 
 автор: hyperion   (14.02.2008 в 09:11)   письмо автору
 
   для: Саня   (14.02.2008 в 00:23)
 

Спасибо за пример.

Есть одно замечание: цыфры в строках не равны друг другу, т.е. A != B != C != D. К примеру первому шаблону может подойти строка 1111111, а она не должна подходить.

   
 
 автор: exp   (14.02.2008 в 21:46)   письмо автору
 
   для: hyperion   (14.02.2008 в 09:11)
 

"#(\d)((?!\\1)\d)((?!\\1|\\2)\d)\d\\3\\2\\1#"

наверное

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования