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 » Регулярные выражения » Поиск текста

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

1. SAD - 24 Октября, 2010 - 10:46:51 - перейти к сообщению
есть набор строк, нужно найти все строки содержащие текст "Правильный ответ:" в самом начале строки
2. movEAX - 24 Октября, 2010 - 10:51:04 - перейти к сообщению
'@^Правильный ответ:.+@mi'
3. SAD - 24 Октября, 2010 - 10:57:17 - перейти к сообщению
работает,но вот в чем дело
строки такого вида, каждая содержится в элементе массива
Правильный ответ: множество объектов или явлений, объединенных одной закономерностью;
Неправильный ответ1: качественная характеристика изучаемого явления;
Неправильный ответ2: количественная характеристика изучаемого явления;
Неправильный ответ3: набор статистических признаков, отражающих взаимосвязи, которые объективно существуют между явлениями.

мне не нужно,чтобы записывало в массив пустые значения строк, в которых не найден текст
4. Uchkuma - 24 Октября, 2010 - 11:04:15 - перейти к сообщению
Тада так?
PHP:
скопировать код в буфер обмена
  1. '@\r\nПравильный ответ:.+@'
5. SAD - 24 Октября, 2010 - 11:07:02 - перейти к сообщению
подправил свое сообщение
каждая строка элемент массива Улыбка
6. movEAX - 24 Октября, 2010 - 11:16:21 - перейти к сообщению
preg_grep
7. SAD - 24 Октября, 2010 - 11:29:49 - перейти к сообщению
оно, спасибо )
8. SAD - 24 Октября, 2010 - 14:24:41 - перейти к сообщению
можно ли найти/вырезать текст до последнего вхождения пробела
например, есть строка
Классификация динамических систем. Системы управления 6;0;0
нужно оставить только Классификация динамических систем. Системы управления
обрезать определенное количество символов с конца не катит, может быть и такое на конце 12;9;21
9. movEAX - 24 Октября, 2010 - 14:52:21 - перейти к сообщению
preg_replace( '@\S+$@m', '', 'Классификация динамических систем. Системы управления 6;0;0' );

Удаляет с конца каждой строки не пробельные символы
10. SAD - 24 Октября, 2010 - 14:55:19 - перейти к сообщению
ешкин кот, регулярные выражения - великая весчь. надо будет заняться их изучением.
спасибо большое, movEAX, спас меня от тупого решения этой проблемы
11. Uchkuma - 24 Октября, 2010 - 14:55:23 - перейти к сообщению

(Добавление)
movEAX, SAD, вродь задача другая была... Однако
(Добавление)
SAD пишет:
регулярные выражения - великая весчь
Не стоит увлекаться регулярками там, где можно обойтись обычными строковыми функциями.
12. movEAX - 24 Октября, 2010 - 15:01:03 - перейти к сообщению
Uchkuma пишет:
Не стоит увлекаться регулярками там, где можно обойтись обычными строковыми функциями.

С этим согласен на все сто. Но знать их не помешает, особенно они бывают полезны при редактировании кода, когда нужно сделать множество схожих замен.
13. SAD - 24 Октября, 2010 - 15:06:45 - перейти к сообщению
я вот пытаюсь в цикле для массива строк проделать это ,но обрезает только последнюю строку((
(Добавление)
Uchkuma, твой способ это делает, а вот movEAX немного не так, что нужно исправить?
14. movEAX - 24 Октября, 2010 - 15:15:50 - перейти к сообщению
Ну, для preg_replace цикл вовсе не нужен.
PHP:
скопировать код в буфер обмена
  1. $arr = array(
  2.     'Классификация динамических систем. Системы управления 6;0;0' ,
  3.     "Классификация динамических систем. Системы управления shfdkjsdfk\r\n" ,
  4.     'Классификация динамических систем. Системы управления !!FD#FDS'
  5. );
  6. print_r ( preg_replace( '@\S+\s*$@m', '',  $arr) );

Но если первый способ работает как надо, то регулярки можно и не использовать)
15. SAD - 24 Октября, 2010 - 15:18:18 - перейти к сообщению
мне просто в цикле надо. ок, тогда воспользуюсь способом Uchkuma
спасибо вам большое Uchkuma, movEAX Улыбка

 

Powered by ExBB FM 1.0 RC1