Отцам regexp
а xpath уже не канает?
а если xml невалиден?
Начнём полное описАние:
Regular expression

...
Regular expression

...
http://realcode.ru/regexptester/
\<div[\w\s- ]*\>(.+?)</div>
\<div[\w\s- ]*\>(.+?)</div>
а если экранированный div внутри текста будет - он его не проматчит лишний раз?
экранированный - в теге [code]?
если в виде entity, то не проматчит
если там [code] то надо в регексп запихать проверку, но пока задача так не ставилась вроде бы
если в виде entity, то не проматчит
если там [code] то надо в регексп запихать проверку, но пока задача так не ставилась вроде бы
ну поэтому я и думаю, что xml лучше xpath матчить. Тем более, что в ту же скалу xpath встроен
не, ну ясен пень, что xml очень удобно парсить - для того его вроде и сделали
но иногда надо распарсить страницу, тут уж без регексп не обойтись
но иногда надо распарсить страницу, тут уж без регексп не обойтись
хотя, слишком уж регексп жадный до ресурсов
кстати, что мешает ТС пойти другим путем?
допустим через JS пройтись по DOM страницы и вытащить содержимое div
допустим через JS пройтись по DOM страницы и вытащить содержимое div
но иногда надо распарсить страницу, тут уж без регексп не обойтисьHTML Tidy зря писали что ли? Конечно, html надо сначало сделать валидным xml, потом делать xpath
слишком уж регексп жадный до ресурсовRE2 спешит на помощь!
говорят PIRE быстрее спешит.
Напиши на PIRE регексп, который решал бы задачу, описанную Бодрячком. Я не верю, что без lookahead-ов у тебя это получится.
<div[^>]*>.*?</div>
как достать только some text?Я чего-то не понимаю, но хочется спросить:
чем достать-то?
чем достать-то?regexp'ом
А как?
Регексп - это автомат, а не робот. Как он может что-то откуда-то достать?
Регексп - это автомат, а не робот. Как он может что-то откуда-то достать?

Регексп - это автомат, а не роботчаще всего regexp - это функция
а доставать она умеет таким образом (TCL):
% regexp "(\[a-c\]*.*)" "abcdefgh" a b c
1
% puts "a=$a, b=$b, c=$c"
a=abcdefgh, b=abc, c=defgh
Диззиден в свойственной ему манере намекает тебе, что ты тупое говно и надо указать язык/инструмент, которому ты будешь скармливать данный регэксп. Ваш капитан-переводчик.
Кстати, правильно Tcl, а не TCL.
Кстати, правильно Tcl, а не TCL.
Регексп - это автомат, а не робот. Как он может что-то откуда-то достать?Думаю, все же мы тут обсуждаем практическое применение, и под регэкспом понимаем некую функцию или процедуру, которая возвращает строку|массив|объект используя регулярные выражения
~$ regexp "(\[a-c\]*.*)" "abcdefgh" a b c
regexp: command not found

На C# достать можно вот так:
string s = Regex.Match(source, @"<div[^>]*>(?<text>.*?)</div>").Groups["text"].Value;
Оставить комментарий
bav46
content = '<div fsdfds>some text</div> fsdfds </div>'как достать только some text? при условии что some text попадает под . включающим подмножество переносных символов. вообщем нужно достать все что идет до первого попадания </div>
заранее спвибо