Форум: "Прочее";
Текущий архив: 2007.01.07;
Скачать: [xml.tar.bz2];
ВнизРегулярные выражения. Найти похожие ветки
← →
ferr © (2006-12-17 12:10) [0]Как извлечь текст находящийся между определёнными тегами, если между ними могут быть другие тэги?
Пример :
<div> 123 </div>
<div> <br> </div>
Если б внутри не было тегов, то можно было бы записать[^<]+
...
← →
tesseract © (2006-12-17 12:22) [1]недетерминированный конечный автомат смотри.
← →
ferr © (2006-12-17 12:42) [2]может ли автомат останавливаться при нахождении какой-то строки? Т.е. надо обойти жадность автомата как-то..
← →
tesseract © (2006-12-17 12:54) [3]
> ferr © (17.12.06 12:42) [2]
Недетерминированный может что хошь. Пример есть у Бакнелла.
← →
Reindeer Moss Eater © (2006-12-17 14:38) [4]т.е. надо обойти жадность автомата как-то..
Наоборот. Нужна жадность.
← →
ferr © (2006-12-17 14:53) [5]я о том что если написать <div>.*</div> то он "заглотит" все внутренние кострукции. А это и есть проявление жадности с его стороны :)
← →
Reindeer Moss Eater © (2006-12-17 14:58) [6]Если нужно получить 123 и <br> то тогда подвыражения
const str1 = "<div> 123 </div>";
str2 = "<div> <br> </div>";
with TRegExpr.Create do
try
Expression := "(?g)<([^/,.]+)>(.+)</\1>";
if Exec(str1) then ShowMessage(Match[1]);
if Exec(str2) then ShowMessage(Match[1]);
finally
Free;
end;
← →
Reindeer Moss Eater © (2006-12-17 15:14) [7]Точнее ShowMessage(Match[2]);
← →
ferr © (2006-12-17 15:21) [8]ну а <div><a>dsfsdfs</a></div> такой код получет? Мне надо суть внутренность тэга брать.. html не xhtml...
← →
Reindeer Moss Eater © (2006-12-17 15:28) [9]"(?g)(<[^/,.]+>)+([^<,.]+)</"
← →
Ученик чародея © (2006-12-17 19:48) [10]TRegExpr ищи
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2007.01.07;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.01 c