Yorumları: 333
Konuları: 52
Kayıt Tarihi: 14-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.714 Programcı
Merhaba;
Regex (Regular Expressions) ile HTML veri ayrıştırma yapmak istiyorum. Bu konuda biraz kaynak sıkıntısı olduğundan sizlere danışmak istedim.
Veri ayrıştırma denemeleri testleri için Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol kullanılabiliyormuş fakat mantığı konusunda sıkıntı yaşıyorum.
Kod:
<td class="dxgv">USG</td><td class="dxgv" onclick="javascript:satis_goster('USG 20-320-010')">USG 20-320-010</td><td class="dxgv">2B14 2261 AA</td><td class="dxgv">3387348</td><td class="dxgv">USG 41-1250</td><td class="dxgv">Deneme Ürün : ABC</td><td class="dxgv"> </td><td class="dxgv">CONNECT</td><td class="dxgv">UM</td><td class="dxgv">02-</td><td align="center" class="dxgv" id="ctl00_MainContent_urunler_tccell0_10">
<img onclick="JavaScript:window360('USG 20-320-010','Images/ikon_360derece.png');" alt="" src="Images/ikon_360derece.png">
</td><td align="right" class="dxgv">13,60</td><td align="center" class="dxgv" id="ctl00_MainContent_urunler_tccell0_12" onmouseover="ddrivetip('KDV Dahil fiyat : 52,96 TL.<br />Bu üründen kazanacağınız hediye puan&nbsp;:&nbsp;1.','yellow', 300)" onmouseout="hideddrivetip()">
<span id="ctl00_MainContent_urunler_cell0_12_NetFiyat">30,98</span>
Yukarıda HTML bir kısmını yazdım, yapmak istediğim. "> ile </ arasındaki değerleri almak. Bunu nasıl yapabilirim.
Teşekkürler.
Yorumları: 1.360
Konuları: 178
Kayıt Tarihi: 09-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 2.993 Uzman
Belirli taglar arasındakini mi tüm tagları mı
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Kuvvete dayanamayan adalet aciz,
Adalete dayanamayan kuvvet zalimdir.
Yorumları: 333
Konuları: 52
Kayıt Tarihi: 14-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.714 Programcı
(22-09-2016, Saat: 15:50)yhackup Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlBelirli taglar arasındakini mi tüm tagları mı
Yukarıda belirttiğim gibide olabilir veya
ile başlayanların arasında almak istiyorum.
Yorumları: 451
Konuları: 24
Kayıt Tarihi: 12-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 2.114 Programcı
Selam,
Mantığı anlamanız açısından aşağıdaki gibi basitçe yapabilirsiniz, ben denedim sonuç güzel ama daha ayrıştırılması gereken alanlar çıkıyor karşınıza.
var
yer1,yer2:integer;
a:ansistring;
parca : string;
begin
a:=memo1.Lines.Text;
yer2:=2;
while yer2>1 do begin
yer1:=pos('">',a); // > işaretini bul
delete(a,1,yer1+1); // oraya kadar sil
yer2:=pos('</',a); // </ işaretini bul
parca := copy(a,1,yer2-1); // arasını al
delete(a,1,yer2+2); // yer2 ye kadar sil
memo2.Lines.Add(parca);
end;
Yorumları: 333
Konuları: 52
Kayıt Tarihi: 14-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.714 Programcı
(22-09-2016, Saat: 17:29)esistem Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlSelam,
Mantığı anlamanız açısından aşağıdaki gibi basitçe yapabilirsiniz, ben denedim sonuç güzel ama daha ayrıştırılması gereken alanlar çıkıyor karşınıza.
var
yer1,yer2:integer;
a:ansistring;
parca : string;
begin
a:=memo1.Lines.Text;
yer2:=2;
while yer2>1 do begin
yer1:=pos('">',a); // > işaretini bul
delete(a,1,yer1+1); // oraya kadar sil
yer2:=pos('</',a); // </ işaretini bul
parca := copy(a,1,yer2-1); // arasını al
delete(a,1,yer2+2); // yer2 ye kadar sil
memo2.Lines.Add(parca);
end;
Cevap için teşekkür ederim @ esistem.
Regular Expressions ile çözmek istememin sebebi çok fazla kod yazmamak o yüzden Regular Expressions ile nasıl çözülürü araştırıyorum.
Yorumları: 451
Konuları: 24
Kayıt Tarihi: 12-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 2.114 Programcı
Ben regular olayına bi türlü ısınamadım o yüzden kullanmıyorum genelde bu şekilde çözüyorum işimi.
Yorumları: 1.360
Konuları: 178
Kayıt Tarihi: 09-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 2.993 Uzman
22-09-2016, Saat: 17:43
(Son Düzenleme: 22-09-2016, Saat: 17:49, Düzenleyen: yhackup.)
Bende @ esistem gibi Delete, Pos fonksiyonlarını kullanarak almıştım en kolayı
yinede bununla ilgili bir örnek vardı elimde arıyorum bulunca atarım buraya
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Kuvvete dayanamayan adalet aciz,
Adalete dayanamayan kuvvet zalimdir.
Yorumları: 1.973
Konuları: 224
Kayıt Tarihi: 07-07-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 8.331 Üstad
(22-09-2016, Saat: 15:13)pro_imaj Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba;
Regex (Regular Expressions) ile HTML veri ayrıştırma yapmak istiyorum. Bu konuda biraz kaynak sıkıntısı olduğundan sizlere danışmak istedim.
Veri ayrıştırma denemeleri testleri için Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol kullanılabiliyormuş fakat mantığı konusunda sıkıntı yaşıyorum.
Kod:
<td class="dxgv">USG</td><td class="dxgv" onclick="javascript:satis_goster('USG 20-320-010')">USG 20-320-010</td><td class="dxgv">2B14 2261 AA</td><td class="dxgv">3387348</td><td class="dxgv">USG 41-1250</td><td class="dxgv">Deneme Ürün : ABC</td><td class="dxgv"> </td><td class="dxgv">CONNECT</td><td class="dxgv">UM</td><td class="dxgv">02-</td><td align="center" class="dxgv" id="ctl00_MainContent_urunler_tccell0_10">
<img onclick="JavaScript:window360('USG 20-320-010','Images/ikon_360derece.png');" alt="" src="Images/ikon_360derece.png">
</td><td align="right" class="dxgv">13,60</td><td align="center" class="dxgv" id="ctl00_MainContent_urunler_tccell0_12" onmouseover="ddrivetip('KDV Dahil fiyat : 52,96 TL.<br />Bu üründen kazanacağınız hediye puan&nbsp;:&nbsp;1.','yellow', 300)" onmouseout="hideddrivetip()">
<span id="ctl00_MainContent_urunler_cell0_12_NetFiyat">30,98</span>
Yukarıda HTML bir kısmını yazdım, yapmak istediğim. "> ile </ arasındaki değerleri almak. Bunu nasıl yapabilirim.
Teşekkürler.
Merhaba,
Bu RegEx olayı çok garip bir o kadar da zevkli. Bir kaç karakter ile istediğiniz sonuç kümesini alabiliyorsunuz.
Üzerinde biraz çalıştım. İstediğiniz sonucu veriyor. Yalnızca en sondaki küçüktür ( <) karakterini atamadım. Onu da siz halledin.
Düzenli ifade:
[^">]+<
Sonuç:
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
Yorumları: 451
Konuları: 24
Kayıt Tarihi: 12-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 2.114 Programcı
Şurada detaylı açıklama var belki işinize yarar
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Yorumları: 333
Konuları: 52
Kayıt Tarihi: 14-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.714 Programcı
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.
|