Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (4) [1] 2 3 ... Последняя » ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Регулярное выражение
SnowWind  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 349
Пользователь №: 23379
На форуме: 6 лет, 7 месяцев, 19 дней
Карма:




Всем привет

есть повторяющийся текст с разными значениями, не могу понять как получить всё между SHOW DOWN где есть пользователь Super до SUMMARY

*** DEALING HANDS ***
Dealt to Super
leberwurst99: folds
Super: raises
1e_st@t: folds
Vendo71: calls
Aaron6565: folds
leberwurst99 said, ":)"
Vendo71: discards
Super: discards
Dealt to Super
Vendo71: checks
Super: checks
*** SHOW DOWN ***
Vendo71: shows
Super: shows
Vendo71 collected
*** SUMMARY ***
Total pot
Seat 2: Super
Seat 3: 1e_st@t
Seat 4: Vendo71
Seat 5: Aaron6565
Seat 6: leberwurst99

делаю так

$nick = 'Super';
preg_match_all('#(?<=)SHOW DOWN.*?'.$nick.'.*?(?=SUMMARY)#is', $contents, $result);
$defeat = count($result[0]);
print_r($result[0]);
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Миша  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 2611
Пользователь №: 37963
На форуме: 3 года, 7 месяцев, 15 дней
Карма: 28




Проверьте, не проверял.

$test = preg_replace('#Super([^.]+)SUMMARY)#', '$1', $value);


--------------------
Болтовня ничего не стоит. Покажите мне код.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Placido  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Наблюдаю
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1244
Пользователь №: 29445
На форуме: 5 лет, 6 месяцев, 22 дня
Карма: 144




Цитата
(?s)(?<=SHOW DOWN)((?!SUMMARY).)+\bSuper\b.+?(?=SUMMARY)

Например.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
FatCat  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Чеширский кот
******

Профиль
Журнал
Группа: Администратор
Почтальон группы
Сообщений: 6004
Пользователь №: 1
На форуме: 11 лет, 1 месяц, 18 дней
Карма: 126

Не пью :
22 года, 6 месяцев, 19 дней


Не люблю регулярки...
$txt = explode("*** SHOW DOWN ***", $txt);
foreach($txt as $k=>$v)
if(stristr($v, "Super"))$txt[$k] = substr($v,0,strpos($v,"*** SUMMARY ***"));
else unset($txt[$k]);


--------------------
Бесплатному сыру в дырки не заглядывают...
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
SnowWind  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 349
Пользователь №: 23379
На форуме: 6 лет, 7 месяцев, 19 дней
Карма:




ничего из этого не работает
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Миша  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 2611
Пользователь №: 37963
На форуме: 3 года, 7 месяцев, 15 дней
Карма: 28




Напиши, что хочешь получить на выходе.


--------------------
Болтовня ничего не стоит. Покажите мне код.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kusss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1445
Пользователь №: 28976
На форуме: 5 лет, 7 месяцев, 27 дней
Карма: 83




SnowWind
Как это не работает ?
http://sandbox.onlinephpfunctions.com/code...b41727d02ff7461
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Миша  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 2611
Пользователь №: 37963
На форуме: 3 года, 7 месяцев, 15 дней
Карма: 28




Работает, проверил.

$test = preg_replace('#^[^.]+(Super[^.]+)[*]{3} SUMMARY[^.]+$#', '$1', $test);


--------------------
Болтовня ничего не стоит. Покажите мне код.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
SnowWind  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 349
Пользователь №: 23379
На форуме: 6 лет, 7 месяцев, 19 дней
Карма:




Цитата (Медведь @ 5.05.2016 - 09:06)
Работает, проверил.

$test = preg_replace('#^[^.]+(Super[^.]+)[\*]{3} SUMMARY[^.]+$#', '', $test);

есть куча текста, вот часть

Seat 1: Joker_SJ
Seat 2: Super
Seat 3: 1e_st@t
Seat 4: Vendo71
Seat 6: leberwurst99
1e_st@t: posts small
Vendo71: posts big
Aaron6565: sits out
*** DEALING HANDS ***
Dealt to Super
leberwurst99: raises
Joker_SJ: calls
Super: raises
1e_st@t: folds
Vendo71: folds
leberwurst99: calls
Joker_SJ: raises
Super: folds
leberwurst99: calls
leberwurst99: discards
Joker_SJ: discards
*** SHOW DOWN ***
leberwurst99: shows
Joker_SJ: shows
leberwurst99 collected
*** SUMMARY ***
Seat 1: Joker_SJ showed
Seat 2: Super (button)
Seat 3: 1e_st@t (small)
Seat 4: Vendo71 (big)
Seat 6: leberwurst99 showed



Seat 2: Super
Seat 3: 1e_st@t
Seat 4: Vendo71
Seat 5: Aaron6565
Seat 6: leberwurst99
Vendo71: posts small
Aaron6565: posts big
*** DEALING HANDS ***
Dealt to Super
leberwurst99: folds
Super: raises
1e_st@t: folds
Vendo71: calls
Aaron6565: folds
leberwurst99 said, ":)"
Vendo71: discards 2 cards
Super: discards
Dealt to Super
Vendo71: checks
Super: checks
*** SHOW DOWN ***
Vendo71: shows
Super: mucks
Vendo71 collected
*** SUMMARY ***
Seat 2: Super mucked
Seat 3: 1e_st@t (button)
Seat 4: Vendo71 (small)
Seat 5: Aaron6565 (big)
Seat 6: leberwurst99 folded

мне нужно собрать в массив такие отрывоки

Vendo71: shows
Super: mucks
Vendo71 collected


т.е там где ПЕРЕД стоит SHOW DOWN в тексте ЕСТЬ пользователь Super, ПОСЛЕ идёт SUMMARY
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Миша  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 2611
Пользователь №: 37963
На форуме: 3 года, 7 месяцев, 15 дней
Карма: 28




т.е. условие такое:
Если после Super идёт SHOW DOWN, нужно отобрать всё до SUMMARY ?


--------------------
Болтовня ничего не стоит. Покажите мне код.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
SnowWind  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 349
Пользователь №: 23379
На форуме: 6 лет, 7 месяцев, 19 дней
Карма:




Цитата (Медведь @ 5.05.2016 - 09:21)
т.е. условие такое:
Если после Super идёт SHOW DOWN, нужно отобрать всё до SUMMARY ?

Точно
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
SnowWind  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 349
Пользователь №: 23379
На форуме: 6 лет, 7 месяцев, 19 дней
Карма:




А нет не так
Если после SHOW DOWN идёт Super отобрать всё до SUMMARY
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Миша  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 2611
Пользователь №: 37963
На форуме: 3 года, 7 месяцев, 15 дней
Карма: 28




Только обратил внимание, что таких блоков может быть несколько ))


--------------------
Болтовня ничего не стоит. Покажите мне код.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









$contents = ...
$nick = 'Super';
preg_match_all('#' . preg_quote('*** SHOW DOWN ***') . '\s([^\*]+' . preg_quote($nick) . '[^\*]+)\s' . preg_quote('*** SUMMARY ***') . '#Uis', $contents, $result);
print_r($result[1]);


https://glot.io/snippets/eee6115zla
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26258
Пользователь №: 21350
На форуме: 7 лет, 11 дней
Карма: 729

Не курю:
1 год, 5 месяцев, 28 дней


$nick = preg_quote("Super");
$pattern = preg_quote("SHOW DOWN ***(.*)*** SUMMARY");
$pattern = strtr($pattern, array('\(\.\*\)'=>'(\r\n'. $nick.'.*)'));
preg_match("#".$pattern."#Usu", $str, $m);

echo '<pre>' . print_r($m[1], 1) . '</pre>';



--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (4) [1] 2 3 ... Последняя » Ответ в темуСоздание новой темыСоздание опроса