Главная страница
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.5 MB
Время: 0.031 c
3-1172343764
DmitrichJ
2007-02-24 22:02
2007.05.13
InterBase-Generator-Trigger. Как узнать сгенерированный номер?


1-1173953857
__DATA__
2007-03-15 13:17
2007.05.13
Работа с компонентами в многопоточном приложении


2-1177406564
oTpok
2007-04-24 13:22
2007.05.13
Генератор тринадцатизначных чисел


1-1174233385
Alexey (AZ)
2007-03-18 18:56
2007.05.13
Переопределить глубокозарытый метод.


15-1176723476
Yaros-hoi
2007-04-16 15:37
2007.05.13
Фильтрация по дате