Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.13;
Скачать: CL | DM;

Вниз

Помогите написать перловый регэксп плиз   Найти похожие ветки 

 
Kerk ©   (2007-04-11 11:52) [0]

Вот такая вот структура текста:

[TITLE]
By [USERNAME]
[TEXT]
<URL1>
[INFO]
<URL2>

[TITLE]
By [USERNAME]
[TEXT]
<[URL1]>
[INFO]
<[URL2]>

n таких блоков через двойной перевод строки

[TERMINATOR]


Интересуют поля [TITLE], [TEXT] и [URL1]
Еще стоит заметить, что строки "By [USERNAME]" может вообще не быть. В таком случае она просто пропускается, никаких пробелов и переводов строки на ее место не ставится, все идет подряд. С ней у меня и проблема


 
Kerk ©   (2007-04-11 11:56) [1]

М. Еще
Поля [TITLE] и [TEXT] могут содержать переводы строки


 
Zeqfreed ©   (2007-04-11 12:53) [2]

Многострочные строки парсить лучше вручную, а не регекспами.


 
Zeqfreed ©   (2007-04-11 12:58) [3]

Если ничем занят не буду и дашь пример входных данных, могу попробовать написать на php.


 
umbra ©   (2007-04-11 13:05) [4]

если нет строки By [USERNAME], то [TITLE] и [TEXT] невозможно разделить. Кроме того, наверное, лучше читать блоками и в каждом сначала определять, есть ли By [USERNAME].


 
Kerk ©   (2007-04-11 13:08) [5]

> [4] umbra ©   (11.04.07 13:05)

Да. Я уже заметил :(
Есть возможность получать этот текс с html-разметкой, думаю там получится лучше.

> [3] Zeqfreed ©   (11.04.07 12:58)

Спасибо. Посмотрю, что там с html и отпишусь еще, если что


 
xayam ©   (2007-04-11 13:10) [6]


> Kerk ©   (11.04.07 11:52)  

Керк, не мучайся. Делай все в xml, проще жить))


 
Kerk ©   (2007-04-11 13:26) [7]

> [6] xayam ©   (11.04.07 13:10)

Какой же ты дурак все-таки


 
xayam ©   (2007-04-11 13:28) [8]


> Kerk ©   (11.04.07 13:26) [7]

мы все дураки))


 
Kerk ©   (2007-04-11 13:31) [9]

> [8] xayam ©   (11.04.07 13:28)

Все звери равны, но некоторые равнее.
Так и ты.. все мы конечно дураки, но..


 
xayam ©   (2007-04-11 13:34) [10]

так, да не так


 
umbra ©   (2007-04-11 13:39) [11]

а если прочитан один блок и By [USERNAME] есть, то

/by \w*\n/si - ищем By [USERNAME]
в переменной $` содержится [TITLE]
Затем
$& =~ /(.*)(\n<)(\w*)(>\n)/s
В $1 будет  [TEXT], а в $3 - [URL1]


 
Kerk ©   (2007-04-12 10:11) [12]

Вот такая строка:
<a style=3D"color: blue" href=3D"http://boards.rebkell.net/viewtopic.php?p==3D303284&sid=3Db0dec6bdedd7f6347c318ada7a3a6bff">RebKell&#39;s Junkie Boards :: View topic - USA Senior team reports ...</=b></a><br><font size=3D-1>7 ZARA Francesca (76 179 P) Mosca 8 BONAFEDE =Monica (85 184A) Levoni    Cras Taranto 9 BAGNARA Benedetta (87 178 G) Termo Carispe LaSpezia ...<br>

Почему такой рэгэксп не работает? :(

$blocks[$i] =~ m/"(http:\/\/.+)">(.+)<\/a><br><font.+>(.+...<\/b>)<br>/isg;

И, собственно, использую далее $1,$2,$3


 
Kerk ©   (2007-04-12 10:14) [13]

Форум съел тэги. На точки внутри <.b> внимания не обращайте.

<a style=3D"color: blue" href=3D"http://boards.rebkell.net/viewtopic.php?p==3D303284&sid=3Db0dec6bdedd7f6347c318ada7a3a6bff">RebKell&#39;s Junkie Boards :: View topic - USA Senior team reports <.b>...</=b></a><br><font size=3D-1>7 ZARA Francesca (76 179 P) Spartak Mosca 8 BONAFEDE =Monica (85 184A) Levoni    Cras Taranto 9 BAGNARA Benedetta (87 178 G) Termo Carispe LaSpezia <.b>...<./b><br>


 
Kerk ©   (2007-04-12 10:14) [14]

$blocks[$i] =~ m/"(http:\/\/.+)">(.+)<\/a><br><font.+>(.+<.b>...<\/b>)<br>/isg;



Страницы: 1 вся ветка

Текущий архив: 2007.05.13;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.049 c
15-1176278924
zorik
2007-04-11 12:08
2007.05.13
Jabber и боты


2-1176964506
inoc
2007-04-19 10:35
2007.05.13
Процедура балансировки дерева


3-1169545811
Alex_AA
2007-01-23 12:50
2007.05.13
Как сделать фильтр для БД?


15-1176604452
GeLLeR
2007-04-15 06:34
2007.05.13
Вопрос про одну dll-ку с сайта torry.net


4-1166206583
BUHALOSS
2006-12-15 21:16
2007.05.13
Отловить сообщения от мышки