Konuyu Oyla:
  • Derecelendirme: 3/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Regex ile HTML veri ayrıştırma (Regular Expressions)
#11
Php den biliyorum bu olayı fakat oldukça yavaş çalıştığı yada sistemi çok yavaşlattığı söyleniyordu, o yüzden hiç kullanmamıştım.
WWW
Cevapla
#12
(22-09-2016, Saat: 18:00)pro_imaj Adlı Kullanıcıdan Alıntı: Yardımlarınız için çok teşekkür ederim. Fesih Hocam dediğiniz gibi oluyor bu gece fazlaca bu konuda çalışma yapacağım.

Arkadaşlar bahsettiğim konu buydu, Fesih hocamında belirttiği gibi; Yüzlerce satırlık HTML kodu için string işlem yaparken herhangi bir değişiklikte tekrar uğraşmak zaman alırken burada sadece ufak bir hareketle hemen düzeliyor.


Teşekkürler.

Rica ederim,
Yapacağınız çalışma sonucunda elde ettiğiniz bilgileri bizimle paylaşırsanız sevinirim.
İyi çalışmalar...
Cevapla
#13
Bende bekliyorum
WWW
Cevapla
#14
Merhaba;
İnternet'teki bilgiler birbirinin aynısı neredeyse, bu konuda iyi bir doküman bulmadan bir şeyler yapmak çok zor, öncesinde yada sonrasında kullanılan işaretler bile fark ediyor.

HTML Parse işlemlerinde bunu kullanmak çok doğrumu karar veremedim şuan.
Kullanım alanlarının genellikle Email, Web, Telefon vb gibi doğrulama olduğunu gördüm. Tek satırda bütün denetimler yapılabiliyor.
Cevapla
#15
Bende e mail ve tarih formatı doğrulama için kullanmıştım doğrusu html işleminş nasıl yapacağını merak ediyordum Smile
WWW
Cevapla
#16
Amaç HTML Parse ise ben olsam TWebBrowser, daha doğrusu IHTMLDocument2 ve IHTMLDocument3 interface'lerini kullanırdım. Nasılsa onlar benim yerime parse yapıyor. Hatta getElementById, getElementsByName vs hazır komutlarla ID'si yada Name'i belli olan HTML elamanlarına direk erişirim Wink
There's no place like 127.0.0.1
WWW
Cevapla
#17
(23-09-2016, Saat: 17:54)SimaWB Adlı Kullanıcıdan Alıntı: Amaç HTML Parse ise ben olsam TWebBrowser, daha doğrusu IHTMLDocument2 ve IHTMLDocument3 interface'lerini kullanırdım. Nasılsa onlar benim yerime parse yapıyor. Hatta getElementById, getElementsByName vs hazır komutlarla ID'si yada Name'i belli olan HTML elamanlarına direk erişirim Wink

Dimi   Cool

E32PR9.png
WWW
Cevapla
#18
Regular Expressions tam bir nimet.. İnsanı bazen yüzlerce IF bloğundan bile kurtarıyor..

Soruya gelecek olursak.. 
Aşağıda ki gibi bir fonksiyon yazdım umarım işini görür..

function GitAraBulGetirSaclariniYolGetir(const AAranan : string) : TStringList;
var
  regexpr : TRegEx;
  match   : TMatch;
  group   : TGroup;
  i       : integer;
  tmpStr  : String;
begin
 Result := TStringList.Create;
 tmpStr := AAranan;
 tmpStr := tmpStr.Replace(' ', '', [rfReplaceAll]);
 tmpStr := tmpStr.Replace('</', '</'+#13, [rfReplaceAll]);

 regexpr := TRegEx.Create('(\">(?<deger>.+)\<\/)',[roIgnoreCase,roMultiline]);
 match := regexpr.Match(tmpStr);

 if not match.Success then
 begin
   showmessage('Bulunamadı!');
   exit;
 end;

 while match.Success do
 begin
   if match.Groups.Count > 1 then
   begin
       Result.Add( match.Groups.Item['deger'].Value );
   end;
   match := match.NextMatch;
 end;
end;

ilk önce &nbsp; karakterlerini temizliyoruz..
daha sonra "</" karakterlerini "</"+ ENTER olarak değiştiriyoruz.. Tek satırda çoklu sonuç döndürmek biraz yorucu..
son olarak regex i çalıştırıp eşlenenleri döngü ile alıyoruz..


Kullanımı : 
Memo2.Lines.AddStrings( GitAraBulGetirSaclariniYolGetir(Memo1.Text) );

Kolay gelsin iyi çalışmalar..
Amatör Küme Bilgisayar Programcısı
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Logo Go3 de döviz tablosunda Date_ alanına veri (Çözüldü) yazma cinarbil 4 114 Bugün, Saat: 08:25
Son Yorum: cinarbil
  IEC 61850 Potokolünden veri alma shooterman 1 444 14-03-2024, Saat: 11:38
Son Yorum: shooterman
  Veri Tabanına Kontrollü Kayıt Yaptırma bünyamin68 15 797 08-03-2024, Saat: 00:06
Son Yorum: TuncayDelphi
  Problem - ZKTeco Cihazlardan Anlık Veri Alma mad85 16 8.157 25-12-2023, Saat: 11:35
Son Yorum: osiso
  Cas Terazi Veri gönderimi Delphi sürüm sorunu KUNTAY 12 4.418 08-11-2023, Saat: 00:06
Son Yorum: berkan



Konuyu Okuyanlar: 1 Ziyaretçi