volosatikkk | ||||
Есть HTML-файлик, из которого хочу выковырять определенный фрагмент. Приблизительно такой:
Нужно, составить регулярку, чтобы после применения preg_match() на выходе было: $m[1]=="нужные данные дальше"; $m[2]=="Вот, собственно, те данные, что мне нужны."; т.е. 1 в 1 со всеми тегами в этой таблице. Только вот загвоздочка еще в том, что перед <table>,<tr>,<td> и прочими тегами туева хуча знаков табуляции. Если кто-то сталкивался - поделитесь решением. Если есть решение без предварительного удаления символов табуляции из текста - будет вообще идеально. Это сообщение отредактировал volosatikkk - 05-01-2008 - 18:43 |
||||
Slartibartfast | ||||
Т.е. я так понимаю, нужно выдрать все что между тегами <td блаблабла> и </td>, и при это проверить, что эти теги находятся внутри контекста <table> и <tr>? Если это так, имхо решается только посредством контекстно-свободной грамматики, т.е. выразительности регулярных языков для этого не достаточно. В частном же случае помогают дополнительные ограничения задачи и знание особенностей конкретных реализаций регулярных языков. :) |
||||
mvf23 | ||||
Именно приблизительно? Или строго? Если строго, то регэксп за 10 мин пишется (но довольно длинный, размером примерно с твой образец кода). Если приблизительно - то ограничь степень приближения. В двух словах везде где у небя написано "здесь могут быть параметры, а могут и не быть" должно быть повторение любого символа кроме закрывающей скобки. Боюсь перепутать, по-моему в перловых регэкспах это бедет выглядеть как ^\>* все угловые скобочки вроде как полагается экранировать слэшами, пробелы и табы между тегами нужно заменить на служебное слово обозначающее проблемы (кажется \whitespaсes или как-то так, тогда и с табами будет работать) Вместо искомого текста типа (*). Вот и будет регэксп. При правильных флагах должен работать. Это сообщение отредактировал mvf23 - 18-03-2008 - 17:57 |
||||
do-do | ||||
Надо глянуть Ассемблерный листинг Паскаля при генерации AND и MOD - думаю там не все так просто :) C другой стороны Процессоры (что АМД, чо Интел) суперскалярные :) и как уж там ОНИ ее поставят и когда выполнят :) то же вопрос интересный |
||||
mvf23 | ||||
Кажися, ты топиком ошибся... :)
Вообще турбопаскаль не сильно выпендривается и mod превращает в ассемблерный DIV, а and в ассемблерный AND. Можешь проверить.
Есть таком момент. Но в любом случае AND вне зависимости от прочих условий ВСЕГДА выполняется на два порядка быстрее (сам попробуй столбиком одно двоичное число на другое разделить с остатком, быстро поймешь что операция это не столь простая, как может показаться ![]() |