Wyciągnięcie tekstu z pomiędzy tagów

0

Chcę zrobić program, który pobierze pewną informacje ze strony np: datę aktualizacji na stronie i ją pokaże np: w ListBox bez wchodzenia na nią.

Chodzi mi o pobranie tekstu "Jest sobie tekst" który jest pomiędzy dwoma tagami:
Jest sobie tekst</td> i zapisanie np: w ListBoxie

Dzięki za pomoc

0

Copy, Pos - F1

Albo google -> regexpr

0

Najłatwiej wyrażeniem regularnym. Tak na oko i na szybko to takie coś:
/<([ ]+)[>]>(.?)</\1>/
i wynik ląduje w \2

0

Marooned: a jest jakas procka/funkcja w delphi/paskalu do obslugi wyrazen regularnych?

0
Marooned napisał(a)

Najłatwiej wyrażeniem regularnym. Tak na oko i na szybko to takie coś:
/<([ ]+)[>]>(.?)</\1>/

Może coś z tego będzie Marooned ;) ale ja nie rozumiem tych znaczków.

Znalazłem dzięki Wolverine kod do RegExpresion
Ale linki do pomocy nie działają. Szukałem też tej pomocy do RegExpr w google.

Mam taki przykład do wydobywania emaila

uses RegExpr;

procedure TForm1.Button2Click(Sender: TObject);
// Extracts email addresses contained in Memo1
var
  RegExpr: TRegExpr;
begin
  // Warning: this code will not extract all valid email addresses.
  // This is just a simplification to show the use of Exec and Match.
  ListBox1.Clear;
  RegExpr := nil;
  try
    RegExpr := TRegExpr.Create;
    if RegExpr <> nil then begin
      RegExpr.Expression := '[^\w\d\-\.]([\w\d\-\.]+@[\w\d\-]+'
                          + '(\.[\w\d\-]+)+)[^\w\d\-\.]';
      if RegExpr.Exec(Memo1.Text) then
        repeat
          ListBox1.Items.Add(RegExpr.Match[1]);
        until not RegExpr.ExecNext;
    end;
  except
  end;
  RegExpr.Free;
end;

Ale z tego kodu: [\w\d-.]([\w\d-.]+@[\w\d-]+' + '(.[\w\d-]+)+)[\w\d\.]
nic nie rozumiem.

Jak się odwołać z tymi znaczkami do mojego przykładu ???

Maciej z innej strony napisał(a)

http://www.mpa.prv.pl/cms_view_article.php?aid=61&start=0 moze to pomoze

Sprawdziłem. Niestety nie pomogło...

0
Opi napisał(a)

Ale z tego kodu: [\w\d-.]([\w\d-.]+@[\w\d-]+' + '(.[\w\d-]+)+)[\w\d\.]
nic nie rozumiem.

http://4programmers.net/article.php?id=194

0
ali88 napisał(a)

Marooned: a jest jakas procka/funkcja w delphi/paskalu do obslugi wyrazen regularnych?
Jeśli piszesz pod .NET to zainteresuj się przestrzenią nazw System.Text.RegularExpressions.

Jeśli nie .NET, to tu masz darmową bibliotekę:
TRegExpr - Freeware Delphi Regular Expressions Library

Opi napisał(a)

Jak się odwołać z tymi znaczkami do mojego przykładu ?
Zamień te znaczki na to, co napisałem na górze.
I jeszcze zamień

RegExpr.Match[1]

na

RegExpr.Match[2]

bo jak pisałem - wynik leci do \2
\1 zawiera tylko nazwę tagu potrzebną do sparowania tagu zamykającego

Jeśli nie zadziała, to do poprawki wyrażenie - jak wspomniałem - pisałem to z palca (ale wygląda na dobrze).

0
Marooned napisał(a)

Zamień te znaczki na to, co napisałem na górze.
I jeszcze zamień

RegExpr.Match[1]

na

RegExpr.Match[2]

bo jak pisałem - wynik leci do \2
\1 zawiera tylko nazwę tagu potrzebną do sparowania tagu zamykającego

Jeśli nie zadziała, to do poprawki wyrażenie - jak wspomniałem - pisałem to z palca (ale wygląda na dobrze).

Dzięki Marooned [browar]. Wyrażenie jest dobrze napisane.
Już myślałem że coś nie tak i miałem pisać, a błąd był w: RegExpr.Match[2]
("wynik leci do \2") :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1