Цитата (SnowWind @ 6.05.2016 - 22:00) |
найти всё, где перед идёт SHOW DOWN в тексте есть пользователь Super, но Super нет перед collected, после текста идёт SUMMARY |
Вы так объясняете, что на трезвую голову не понять.
где перед идёт SHOW DOWN
Что это? Я понял, что у вас перед ходит, а SHOW DOWN просто рядом стоит :)
_____________
Принимаю заказы, писать в ЛС
SnowWind
7.05.2016 - 08:26
перед искомым выражением
вот это нужно получить:
Super: mucks
Vendo71: shows
Vendo71 collected
перед этим текстом есть SHOW DOWN, в тексте Super, перед collected нет Super, после текста идёт SUMMARY
Цитата (SnowWind @ 7.05.2016 - 08:26) |
после текста идёт SHOW DOWN |
А не SUMMARY
_____________
Принимаю заказы, писать в ЛС
SnowWind
7.05.2016 - 08:47
ага SUMMARY я уже сам запутался
SnowWind
7.05.2016 - 12:24
Цитата (Игорь_Vasinsky @ 6.05.2016 - 18:36) |
SnowWind так вы батенька себе попу порвёте.
соберите все блоки в массив и простенькой логикой в цикле шуршите по ним. |
так в цикле той же регуляркой и то же выражение будет
Цитата (SnowWind @ 7.05.2016 - 12:24) |
Цитата (Игорь_Vasinsky @ 6.05.2016 - 18:36) | SnowWind так вы батенька себе попу порвёте.
соберите все блоки в массив и простенькой логикой в цикле шуршите по ним. |
так в цикле той же регуляркой и то же выражение будет
|
Re: шуршите по ним
Ручками ) А я пока занят, вечером если что.
_____________
Принимаю заказы, писать в ЛС
if(preg_match_all("#[^\*]*Super[^\*]*#", $contents, $matches)) {
foreach($matches[0] as $key => $value) {
if(!preg_match("#Super[^\n]*\n[^\n]*collected#", $value)) {
$res[] = $value;
}
}
print_r($res);
}
P.S. Не писать lol что так сложно ;) Свой вариант предложите, а у меня времени не было.
_____________
Принимаю заказы, писать в ЛС
SnowWind
7.05.2016 - 21:44
ага я так же стал делать, но только выражение не смог написать
нет, медведь так не работает
нужно выбрать всё где в тексте нет Super collected
preg_match_all('#' . preg_quote('*** SHOW DOWN ***') . '\s([^\*]+' . preg_quote($nick) . '[^\*]+)\s' . preg_quote('*** SUMMARY ***') . '#Uis', $contents, $result);
foreach ($result[1] as $key => $value)
{
preg_match('#.*(?!Super\s+collected).*#is', $value, $loose[$key]);
}
print_r($loose);
Цитата (SnowWind @ 7.05.2016 - 08:26) |
Super: mucks Vendo71: shows Vendo71 collected |
Составил по вашему примеру и даже проверил, работает.
_____________
Принимаю заказы, писать в ЛС
SnowWind
7.05.2016 - 21:56
по моему примеру он всё выбирает и такие тоже
Super: shows
Vendo71: mucks
Super collected
Цитата (SnowWind @ 7.05.2016 - 21:56) |
по моему примеру он всё выбирает и такие тоже Super: shows Vendo71: mucks Super collected |
Цитата |
вот это нужно получить:
Super: mucks Vendo71: shows Vendo71 collected
перед этим текстом есть SHOW DOWN, в тексте Super, перед collected нет Super, после текста идёт SUMMARY |
Не, не вы писали?)
_____________
Принимаю заказы, писать в ЛС
SnowWind
7.05.2016 - 22:08
я писал, так он выбирает и это тоже
Super: shows
Vendo71: mucks
Super collected
а не должен, точнее мне так не нужно )
Значит Super должен быть, а collected нет. Правильно?
if(!preg_match("#Super[^\n]*\n[^\n]*collected#", $value)) {
заменить на
if(!preg_match("#collected#", $value)) {
_____________
Принимаю заказы, писать в ЛС
SnowWind
7.05.2016 - 22:16
прям головоломка
Теперь уже нужно выбрать все, если перед collected нет Super
Цитата (SnowWind @ 7.05.2016 - 22:16) |
прям головоломка
Теперь уже нужно выбрать все, если перед collected нет Super |
Предыдущий вариант сработал?
_____________
Принимаю заказы, писать в ЛС
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.