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

Вниз

Регулярные выражения.   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.038 c
15-1166102408
Vlad Oshin
2006-12-14 16:20
2007.01.07
SQL. where 1=2 Это зачем так писать?


15-1166390678
AntiUser
2006-12-18 00:24
2007.01.07
Системный администратор осужден на 8 лет


15-1166239012
Cosinus
2006-12-16 06:16
2007.01.07
Напомните, пожалуйста, название программы для отлова сообщений...


15-1162982792
Lamer@fools.ua
2006-11-08 13:46
2007.01.07
[Вакансия] Киев, до $1000, Junior .NET Developer (C#)


2-1166539857
niko
2006-12-19 17:50
2007.01.07
Assembler