|
|
|
| Попалась задача следующего вида: имеются строки, состоящие из семи цифр. Необходимо их проверить на совпадение нескольким шаблонов. Например, два шаблона: ABCDCBA и AB000AB, где A, B, C, D цифры от 0 до 9, 0 - ноль. Т.е. это например числа 1234321 (для первого шаблона) и 1200012 (для второго шаблона).
Можно ли данную задачу решить с помощью регулярных выражений и если можно, подскажите, пожалуйста, как. | |
|
|
|
|
|
|
|
для: 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);
|
| |
|
|
|
|
|
|
|
для: Саня
(14.02.2008 в 00:23)
| | Спасибо за пример.
Есть одно замечание: цыфры в строках не равны друг другу, т.е. A != B != C != D. К примеру первому шаблону может подойти строка 1111111, а она не должна подходить. | |
|
|
|
|
|
|
|
для: hyperion
(14.02.2008 в 09:11)
| |
"#(\d)((?!\\1)\d)((?!\\1|\\2)\d)\d\\3\\2\\1#"
|
наверное | |
|
|
|