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

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

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

 

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

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

тема: Помогите пожалуйста с регулярным выражением
 
 автор: Марат   (08.07.2009 в 17:50)   письмо автору
 
 

Помогите составить регулярное выражения для набора различных цифр от 1 до 8, возможны через пробелы и запятые. Т.е. 1, 2, 3, 5 можно, а 1, 2, 1, 5 нельзя.

  Ответить  
 
 автор: ,,,,   (09.07.2009 в 01:00)
 
   для: Марат   (08.07.2009 в 17:50)
 

придётся наверное делать выражение с 8-ю захватывающими подмасками
, типа ^([1-8]), ?([1-8])(?:, ?)?(?:([1-8]), ?)?(?:([1-8]), ?)?
и потом анализировать получаемый совпадением массив

или сделать не совсем рег.выражениями
<?
header
('Content-type:text/plain; charset=cp1251');

function 
x_test($m){
 global 
$outlist$flag;
 if (
$flag) {
    if (!
in_array($m[1], $outlist))
        
array_push($outlist$m[1]);
    else 
$flag false;
 }
 return 
$m[0];
}

foreach( array(
'1,2,3, 4, 5',
    
'8, 7, 6, 4, 5,4',
    
'2,3, 4,5,6,7',
    
'1,2,1,1,1,1,1,1,1,1,1,1,1,1,1'
    
) AS $list) {
    
    
$flag true;
    
$outlist = array();
    echo 
'the list "'
    
preg_replace_callback('#\b([1-8])\W*#''x_test'$list)
    .
'" is '. (($flag)? '''in') ."valid\n";
    echo 
implode("\t"$outlist) ."\n\n";
}


или совсем не рег.выражениями
, например
<?
foreach( array('1,2,3, 4, 5',
    
'8, 7, 6, 4, 5,4',
    
'2,3, 4,5,6,7',
    
'1,2,1,1,1,1,1,1,1,1,1,1,1,1,1'
    
) AS $list) {
    
print_r($list sscanf($list"%u,%u,%u,%u,%u,%u,%u,%u\n")) ;
}

  Ответить  
 
 автор: Марат   (09.07.2009 в 11:33)   письмо автору
 
   для: ,,,,   (09.07.2009 в 01:00)
 

Спасибо!

  Ответить  
Rambler's Top100
вверх

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