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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите с простенькой регуляркой, пожалуйста.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
freelsd
Отправлено: 25 Марта, 2015 - 07:37:46
Post Id


Гость


Покинул форум
Сообщений всего: 108
Дата рег-ции: Февр. 2015  


Помог: 1 раз(а)




Я вот не могу понять, как нужно составить регексп, если мне нужно чтобы он срабатывал, когда в строке встречаются две последовательности abc и def, неважно в каком порядке. Подскажите, плиз.
 
 Top
LIME
Отправлено: 25 Марта, 2015 - 07:49:31
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




 
 Top
GoDr
Отправлено: 25 Марта, 2015 - 08:12:52
Post Id



Посетитель


Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015  
Откуда: Тамбов


Помог: 17 раз(а)




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, человек хочет регуляркой Закатив глазки хотя делать логическое И в регулярке не самое благодарное дело

(Отредактировано автором: 25 Марта, 2015 - 08:13:38)



-----
Система управления веб-содержимым Lotos CMS
 
 Top
freelsd
Отправлено: 25 Марта, 2015 - 08:21:03
Post Id


Гость


Покинул форум
Сообщений всего: 108
Дата рег-ции: Февр. 2015  


Помог: 1 раз(а)




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, человек хочет регуляркой Закатив глазки хотя делать логическое И в регулярке не самое благодарное дело


Похоже на то что нужно, попробую, спасибо.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB