Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Помогите с простенькой регуляркой, пожалуйста.
Форумы портала PHP.SU » PHP » Программирование на PHP » Помогите с простенькой регуляркой, пожалуйста.

Страниц (1): [1]
 

1. freelsd - 25 Марта, 2015 - 07:37:46 - перейти к сообщению
Я вот не могу понять, как нужно составить регексп, если мне нужно чтобы он срабатывал, когда в строке встречаются две последовательности abc и def, неважно в каком порядке. Подскажите, плиз.
3. GoDr - 25 Марта, 2015 - 08:12:52 - перейти к сообщению
freelsd, что такое регексп? И что такое "если мне нужно чтобы он срабатывал"? Как сработал? Чем сработал? Что-то у тебя с русским языком проблемы..

Если тебе нужно найти строку в которой встречается abc И def, то можно попробовать так:
PHP:
скопировать код в буфер обмена
  1. $a[] = 'uihihsd abc  si hdiuash asod def hoiasdh o hasdoh ';
  2. $a[] = 'uihihsd si hdiuash asod hoiasdh def o hasdoh ';
  3. $a[] = 'uihihsd def si hdiuash asod  abc hoiasdh o hasdoh ';
  4. $a[] = 'uihihsd si abc hdiuash asod hoiasdh o hasdoh ';
  5.  
  6. foreach($a as $k => $v){
  7.     $b = preg_match('#(abc.*?def|def.*?abc)#is', $v, $m);
  8.     if($b){
  9.         echo 'Строка ['.$k.'] - ДА<br>';
  10.     }else{
  11.         echo 'Строка ['.$k.'] - НЕТ<br>';
  12.     }
  13. }

(Добавление)
LIME, человек хочет регуляркой Закатив глазки хотя делать логическое И в регулярке не самое благодарное дело
4. freelsd - 25 Марта, 2015 - 08:21:03 - перейти к сообщению
GoDr пишет:
freelsd, что такое регексп? И что такое "если мне нужно чтобы он срабатывал"? Как сработал? Чем сработал? Что-то у тебя с русским языком проблемы..

Если тебе нужно найти строку в которой встречается abc И def, то можно попробовать так:
PHP:
скопировать код в буфер обмена
  1. $a[] = 'uihihsd abc  si hdiuash asod def hoiasdh o hasdoh ';
  2. $a[] = 'uihihsd si hdiuash asod hoiasdh def o hasdoh ';
  3. $a[] = 'uihihsd def si hdiuash asod  abc hoiasdh o hasdoh ';
  4. $a[] = 'uihihsd si abc hdiuash asod hoiasdh o hasdoh ';
  5.  
  6. foreach($a as $k => $v){
  7.     $b = preg_match('#(abc.*?def|def.*?abc)#is', $v, $m);
  8.     if($b){
  9.         echo 'Строка ['.$k.'] - ДА<br>';
  10.     }else{
  11.         echo 'Строка ['.$k.'] - НЕТ<br>';
  12.     }
  13. }

(Добавление)
LIME, человек хочет регуляркой Закатив глазки хотя делать логическое И в регулярке не самое благодарное дело


Похоже на то что нужно, попробую, спасибо.

 

Powered by ExBB FM 1.0 RC1