Thread overview
Regex ve D RegexMatch'den Veri Alma[Sorun]
Jun 18, 2014
huseyin
Jun 19, 2014
huseyin
Jun 19, 2014
huseyin
Jun 19, 2014
Mengu
Jun 21, 2014
huseyin
Jun 22, 2014
Mengu
June 18, 2014

Merhaba Arkadaşlar
D ile bir regex çalışması yaparken şöyle bir sorunla karşılaştım.

string text=cast(string)std.file.read("a.txt");
auto titlereg=regex(`<td[^>]*\sclass="alt1Active"[^>]*>\s*<div>\s*<a[^>]*><strong>(.*?)<\/strong><\/a>`);//title için

auto titles=matchAll(text,titlereg);

   foreach(title;titles)
   {
       writeln(title);
       writeln();

   }

Böyle yazdırınca Çıktı:

["<td class="alt1Active" id="f11" align="left"> <a href="ali">KONU", "KONU"]

["<td class="alt1Active" id="f12" align="left"> <a href="veli">SORU", "SORU"]

["<td class="alt1Active" id="f13" align="left"> <a href="huseyin">YORUM", "YORUM"]

Benim istediğim 2. olan. İlk dizi olduğunu düşünerek opIndex ile çekmeyi denedim yani title[1] gibi ancak değilmiş.
RegexMatch adında bir yapı.
*struct RegexMatch(R, alias Engine = ThompsonMatcher) if (isSomeString!R); *

Teşekkürler

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

June 18, 2014

Alıntı (huseyin):

>

Benim istediğim 2. olan.

Senin istediğin her zaman için ikinci olan mı yoksa örneğin sonunda SORU geçiyor diye ikinci olan mı?

Eğer her zaman için ikinci olansa kendin sayarak bir tane atlayabilirsin. En kolayı, titles.popFront() olur herhalde.

Alıntı:

>

İlk dizi olduğunu düşünerek opIndex ile çekmeyi denedim yani title[1] gibi ancak değilmiş.

(title değil de titles demek istedin tabii.)

titles herhalde bir aralık (range) olsa gerek (std.regex'in belgesinde yazar); ama RandomAccessRange değildir herhalde. O yüzden indeksleyemezsin.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

June 19, 2014

Alıntı:

>

Senin istediğin her zaman için ikinci olan mı yoksa örneğin sonunda SORU geçiyor diye ikinci olan mı?

İkinci olandan kastettiğim
["<td class="alt1Active" id="f11" align="left"> <a href="ali">KONU",** "KONU"**]
dizinin ikinci elemanı yani her birinde ikinci elemanı istiyorum kısacası match olanı :)

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

June 19, 2014

Ya nasıl iş anlamıyorum dün gece çalışmadı şimdi çalıştı neyse çok teşekkür ederim hocam sorun çözülmüştür :)

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

June 19, 2014

Hm. 'title[1]' bende çalışıyor:

import std.stdio;
import std.regex;

void main()
{
   string text = "<td class=\"alt1Active\" id=\"f11\" align=\"left\"> <div> <a href=\"ali\"><strong>KONU</strong></a>";

   auto titlereg=regex(`<td[^>]*\sclass="alt1Active"[^>]*>\s*<div>\s*<a[^>]*><strong>(.*?)<\/strong><\/a>`);//title için

   auto titles=matchAll(text,titlereg);

   foreach(title;titles)
   {
       writeln(title[1]);
   }
}

Çıktısı:
'
KONU
'

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

June 19, 2014

selamlar huseyin

regex ile html parse etmemek lazim. vakit gectikce insan bunu daha iyi anliyor. html bir tree oldugu icin html parser kullanmak cok daha mantikli. fakat is ufak, pek de karsi ciktigim bir sey degil boyle basit taskler icin.

d ile html parse etmek icin adam d. ruppe'nin dom kutuphanesini [0] tavsiye etmisler. stackoverflow'da da minik kullanim ornegi var. [1]

[0] https://github.com/adamdruppe/arsd/blob/master/dom.d
[1] http://stackoverflow.com/questions/11936434/is-there-a-html-parsing-for-d#comment15900311_11936541

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

June 21, 2014

Alıntı (Mengu:1403244242):

>

selamlar huseyin

regex ile html parse etmemek lazim. vakit gectikce insan bunu daha iyi anliyor. html bir tree oldugu icin html parser kullanmak cok daha mantikli. fakat is ufak, pek de karsi ciktigim bir sey degil boyle basit taskler icin.

Selamlar
Regex'i html ayırmak için kullanmam php ile başlamıştı :) Aslında çok problem olmuyor regex üzerinden devam edebilirim. Evet DOM parser aradım ancak bulamamıştım. Kütüphane için çok teşekkür ederim.

İlk xml ile denedim ki html in yapısı bozuk olduğunda program hata döndürüyor falan bir sürü hikaye

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

June 23, 2014

Alıntı (huseyin:1403349915):

>

Alıntı (Mengu:1403244242):

>

selamlar huseyin

regex ile html parse etmemek lazim. vakit gectikce insan bunu daha iyi anliyor. html bir tree oldugu icin html parser kullanmak cok daha mantikli. fakat is ufak, pek de karsi ciktigim bir sey degil boyle basit taskler icin.

Selamlar
Regex'i html ayırmak için kullanmam php ile başlamıştı :) Aslında çok problem olmuyor regex üzerinden devam edebilirim. Evet DOM parser aradım ancak bulamamıştım. Kütüphane için çok teşekkür ederim.

İlk xml ile denedim ki html in yapısı bozuk olduğunda program hata döndürüyor falan bir sürü hikaye

evet xml parserlar eger html desteklemiyorlarsa direkt patlar kimi html dokumanlari icin. well-formed html dokumanlar icin patlamama ihtimalleri olsa da dom parser kullanmak daha dogru.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]