регулярное выражение

Статус
В этой теме нельзя размещать новые ответы.

sympler

Постоялец
Регистрация
24 Окт 2008
Сообщения
131
Реакции
6
помогите с регуляркой, второй день парюсь (((
в общем есть текст:
abccc;(нужный_текст);
abccc&(нужный_текст)&
abccc&(нужный_текст)&
abccc;(нужный_текст);
левый текст 1
abccc&(нАчаЛО и далее ненужный_текст)&
abccc;(любой_текст_нужный_текст);
левый текст 2
abccc;(ненужный_текст-КоНеЦ);
abccc;(ненужный_текст-надоЕло);
естесвенно между ними может быть куча другого текста (пометил как левый текст 1 и левый текст 2,
но смысл таков: сначала идет строка "abccc" потом знак ; или знак &
потом мне нужный текст а в конце опять знак ; или знак &
с этим я справился, но не могу никак исключить "нужный текст" который начинается с таких слов "начало", "поехали" и\или заканчивается на слова "конец", "надоело".
нужный текст: от 3 до 200 знаков. (если это условие ускорит выборку нужного текста)
то есть выборку сделал (отсеял левый текст), а вот отсеять 6, 9 и 10 строки никак не получается,
поиск по тексту без учета регистра
специально не буду приводить то что у меня чтобы не напутали
скажу что использовал preg_match_all () для занесения всех совпадений в массив
preg_match_all($regul, $text, $matches);
заранее спасибо, если нужно более подробно то распишу
 
Как вариант почистить полученный регуляркой массив. Вот на вскидку
PHP:
$good = array(); //сюда будем записывать только нужное нам из $matches
foreach($matches as $key => $value) {
	foreach($value as $matches) {
		$matches = preg_replace("#(^начало|^поехали).*|.*(конец$|надоело$)#i", "bad", $matches);	
		if($matches!="bad"){
		    $good[] = $matches;
		}
	}
}
 
спасибо хотябы на этом, хотя думал что обойдусь одним регулярным выражением,

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

логика такая нужно взять первый элемент массива и сравнить со всеми остальными, если есть похожие то его удалить, и так далее
осталось только реализовать
 
вы пробовали
*** скрытое содержание *** ?
пробовал, но тогда не совсем понимал как ее использовать, теперь пришлось разобраться и получилось ))

вот здесь я на этот же вопрос отвечал, посмотри
*** скрытое содержание ***
было полезно, как уже писал, раньше пытался но не получалось, сейчас вышло, поскольку раньше применял не правильно
ТС, а что если так попробовать:
*** скрытое содержание ***
попробовал, но чего-то не хватает, поскольку регулярка исключает все (( то есть ни одного совпадения, попробуйте сами, хотя от моего выражения немного отличается
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху