Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Вопрос по рег. выражениям (sergey_tmp)
Author Message
sergey_tmp
Заглянувший



Joined: 30 Dec 2006
Posts: 11
Карма: 0
   поощрить/наказать


PostPosted: Sun Feb 04, 2007 3:58 am (написано за 5 минут 18 секунд)
   Post subject: Вопрос по рег. выражениям
Reply with quote

есть файл сл. формата:
Quote:
TABLE
0,1
"EXCEL"
VECTORS
0,4
"z"
TUPLES
0,6
"z"
DATA
0,0
"z"
-1,0
BOT
1,0
"""tyt""u""t"""
1,0
"sdas"
1,0
"saasdsad"
1,0
"sadsd"
1,0
"sdsdasdasdasdasdasdasad"
1,0
"1"
-1,0
BOT
1,0
"""tyt""u""t"""
1,0
"sdas"
1,0
"saasdsad"
1,0
"sadsd"
1,0
"sd""sda""sdasdasdasdasdasad"
1,0
""
-1,0
EOD
Надо вытащить все блоки BOT
P.S.
строки заключенные в "" содержат любые симв. и "" в том случае если ", но "" может так-же означать пуст. строку.
конец блока определяется либо началом сл. (BOT) либо (EOD\n)

Уже просто за%%% , буду очень признателен за помощь.
Back to top
View user's profile Send private message Send e-mail
Dark-Demon
Участник форума
Banned


Joined: 04 Feb 2007
Posts: 45
Карма: -3
   поощрить/наказать

Location: spb

PostPosted: Sun Feb 04, 2007 7:09 am (спустя 3 часа 11 минут; написано за 57 секунд)
   Post subject:
Reply with quote

что-то вроде:
Code (any language): скопировать код в буфер обмена
/BOT(.+)(?:BOT|EOD)/s
Back to top
View user's profile Send private message
Guest






Карма: 388
   поощрить/наказать


PostPosted: Sun Feb 04, 2007 10:44 am (спустя 3 часа 35 минут; написано за 1 минуту 27 секунд)
   Post subject:
Reply with quote

/BOT(.+)(?:BOT|EOD)/s - Не подойдет.
т.к. текст BOT , EOD может стоять между ""
например так:
Quote:
BOT
1,0
"BOT"
1,0
"sdas"
1,0
"saasdsad"
1,0
"sadsd"
1,0
"sdsdasdasdasdasdasdasad"
1,0
"1"
-1,0
BOT
Если бы было так просто, не спрашивал бы :-)
Back to top
sergey_tmp
Заглянувший



Joined: 30 Dec 2006
Posts: 11
Карма: 0
   поощрить/наказать


PostPosted: Sun Feb 04, 2007 12:27 pm (спустя 1 час 42 минуты; написано за 17 секунд)
   Post subject:
Reply with quote

короче не подходит.
Back to top
View user's profile Send private message Send e-mail
Юрий Насретдинов
Модератор



Joined: 13 Mar 2003
Posts: 8642
Карма: 198
   поощрить/наказать

Location: 007 495

PostPosted: Mon Feb 05, 2007 3:00 am (спустя 14 часов 33 минуты)
   Post subject:
Reply with quote


М

Ветка выделена в отдельную тему «бред»,
расположенную в форуме Разное :: PHP (05 Февраля 2007, 03:00).
Back to top
View user's profile Send private message Send e-mail
Антон Макаренко
Участник форума



Joined: 05 Feb 2004
Posts: 374
Карма: 31
   поощрить/наказать

Location: Киев

PostPosted: Tue Feb 06, 2007 12:11 am (спустя 21 час 10 минут; написано за 1 минуту 16 секунд)
   Post subject:
Reply with quote

Попытаюсь оказать посильную помощь.
Code (php): скопировать код в буфер обмена
<?php
$subject =
'TABLE
0,1
"EXCEL"
VECTORS
0,4
"z"
TUPLES
0,6
"z"
DATA
0,0
"z"
-1,0
BOT
1,0
"""tyt""u""t"""
1,0
"sdas"
1,0
"saasdsad"
1,0
"sadsd"
1,0
"sdsdasdasdasdasdasdasad"
1,0
"1"
-1,0
BOT
1,0
"""tyt""u""t"""
1,0
"sdas"
1,0
"saasdsad"
1,0
"sadsd"
1,0
"sd""sda""sdasdasdasdasdasad"
1,0
""
-1,0
EOD'
."\n".'bybyby
BOT
blablabla
EOD'
."\n";

//
$matches = preg_split (www.php.net/preg_split)('/^BOT/m', $subject);
array_shift (www.php.net/array_shift)($matches); //
//
foreach (array_keys (www.php.net/array_keys)($matches) as $k)
        $matches[$k] = preg_replace (www.php.net/preg_replace)('/EOD\n.*$/s', '', $matches[$k]);
print_r (www.php.net/print_r)($matches);
?>
Насчет \n в строках с EOD не уверен, возможно будет достаточно просто /EOD.*$/s
Back to top
View user's profile Send private message Send e-mail
chin
Участник форума



Joined: 23 Feb 2005
Posts: 312
Карма: 26
   поощрить/наказать

Location: Украина, Киев

PostPosted: Fri Feb 09, 2007 12:31 pm (спустя 3 дня 12 часов 19 минут; написано за 21 секунду)
   Post subject:
Reply with quote

Антон Макаренко
да, 's' делает из точки еще и новую строку.
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML