RegEx - Kap tekstin brenda nje etikete (tag)

Tema: RegEx - Kap tekstin brenda nje etikete (tag)

  1. Maska e Gepardi

    Gepardi said:

    RegEx - Kap tekstin brenda nje etikete (tag)

    Pershendetje

    Do doja mendimin tuaj ne lidhje me kete problem.

    Si mund ta kap tekstin brenda nje TAG duke perdorur "Regular Expressions"?
    Me tag kuptoj cdo tag qofte HTML qofte XML.

    P.SH

    Ky eshte teksti qe do kapet

    Po persa i perket atributeve te ketij tag psh si mund te kap tektstin brenda attributit href="".

    Nuk e di a mund te realizohet kjo vetem duke perdorur RegEx pasi pas disa tentativash nuk arrita ta bej (Nuk eshte se kam shume eksperience me RegEx).

    Gjuha programuese qe po perdor eshte C# megjithese nese kjo mund te realizohet vetem me RegEx besoj se nuk ka rendesi gjuha programuese pra mund te behet ne cdo gjuhe.

    Tagu do te jete i percaktuar psh apo apo

    Disa ide qe me erdhen mua ishte te shfrytezoj DOM pra ta perpunoj dokumentin me ane te DOM apo ta konsideroj si XML dhe te shfrytezoj nje XML parser(kjo nxjerr probleme sepse dokumenti duhet te jete i formatuar korrektesisht). Alternativa e fundit qe me erdhi ne mendje ishte te shkruaj nje Klase qe ben te mundur kete duke mos perdorur RegEx por besoj se do te jete e veshtire. Gjithsesi isha kurioz te dija nese mund te realizohet me RegEx pasi me kete menyre mund ta shfrytezosh per cdo varg karakteresh "String".
  2. Maska e Clauss

    Clauss said:
    per shembullin mesiper nje regex idiot, ne perl, menduar tani ne ajer pa e provuar fare do ishte:

    1) ~/href="(.+)">/sg
    2) ~#(.+)
    1) "pelcet" po ka qofte dhe nje space para ">". ze vetem "href"
    2) ze vetem "href", asnje tjeter. kur do "pelcasi" spo me vjen tani

    sa me specific tags dhe attribute_names aq me i lehte dhe me i sigurt regex qe do te te beje punen. sa me wide aq me shume magic/kinezce do.
    mbase do ishte me e lehte nje saktesim i atyre tag/attrib qe do te besh extract?
    You were meant for me. Perhaps as a punishment.
     
  3. xfiles said:
    kjo do te mjaftonte.

    regEx=.*

    ne fakt kjo eshte per pattern matching ,
    per te kapur tekstin duhet te kete ndonje librari me funksione per kete pune.
     
  4. Maska e qoska

    qoska said:
    Besoj se parserat XML ose HTML jane me te sakte per kete.
    Nje rekomandim qe behet zakonisht eshte se nese perfundon tek regex atehere nuk ke menduar mire dicka. Jo per te ulur vleren e regex por sepse ato jane te komplikuara duan praktike dhe per me teper te veshtira per tu kuptuar mire.

    Gjithsesi me mire do ishte te tregoje tamam cdo te besh qe te te jap nje ide me te qarte. Ka disa variante te mundshme sipas llojit te aplikacionit.

    Per me teper qe performanca penalizohet sidomos nese perdor regex.
     
  5. Maska e Gepardi

    Gepardi said:
    Mua me duhet te kap te gjithe hyperlinks ne nje faqe HTML qe do ta kem si string. Pra te gjithe Link

    Per cdo link te tille me duhet te kap tekstin brenda dhe attributin href pra URL.

    Per ta perpunuar dokumentin me nje XmlParser te gatshem (psh ate te .Net ) duhet qe dokumenti te jete i formatuar brenda rregullave te XML gje qe nuk eshte gjithmone e vertete per cdo dokument (mund te mungoje nje tag mbylles etj).

    Kam gjetur disa menyra per te kapur linqet. Nje metode interesante me RegEx ishte e ashtuquajtura "look around" pra nje regex qe kerkon nje tekst qe rrethohet para ose mbrapa me nje lloj teksti te dhene por nuk po arrij ta ndertoj nje qe te mos me shfaqi probleme.

    Shembull

    (?<=]+>).*?(?=) kjo presupozohet te me kapi tekstin brenda Teksti

    Ndoshta mund ta kryej kete qe dua duke manipuluar stringun qe eshte kapur me regex ( String e plote te HyperLink p.sh Link) me metodat tradicionale por besoj se do te jete me e veshtire dhe per te ndertuar nje klase pergjithesuese akoma me e veshtire. Prandaj po kembengul per RegEx.
     
  6. Maska e qoska

    qoska said:
    IronPython ose Python per .NET ka HTML parser mjaft te mire si modul.
    Per mua zgjidhja ideale mjaft e thjeshte gjen shembuj ne faqen e python.

    Me regex meqe do dicka e tille do te ishte e nevojshme:
    ^[a-z0-9]*$

    duhet te te beje pune. Se di ne duhet bere "escape hapesira kur shkruhet [ ] por me prove e gjen kollaj.
    C'ka do te thote eshte
    ^ fillon me [ ]+ ka nje ose me shume hapesire
    [Hh] ka keto karaktere ne vazhdim
    [ ]* asnje ose me shume hapesira /* se di ne lejohet ne html kjo */
    \= s'jam i sigurte ne duhet escape apo jo
    [a-z.... qe permban te pakten nje nga keto karaktere ne vazhdim
    ...
    >$ dhe perfundon me kete.

    Ndoshta mund te pepunohet me shume por edhe te jesh me i sakte akoma ne cfare kerkon ose mund te implementosh nje nivel aplikimi regex me shkalle per te patur dicka me te sakte dhe qe te nxjerre infon qe do. gjithsesi une prape se rekomandoj regex dhe te them shko ne python html parser me zgjidhje e pranueshme dhe prandaj .NET u krijua per te te ofruar keto gjera.
    P.S. Perl prandaj eshte e palexueshme se permban shume regex
     
  7. Maska e Ardi_Pg_ID

    Ardi_Pg_ID said:
    Une personalisht do kisha perdorur kete
    Kodi: [View]
     /]*? href="([^"]*+)"[^>]*+>(.*?)<\/a>/igs
    Secili ka menyra te ndryshme per te bere regexin.
    nese do te lexosh me shume se ma mer mendja dicka duhet te dish http://www.regular-expression.info
    gjithashtu ma mer mendja se duhet te kete nje regex editor tjeter po une perdor nje script qe loaded ne mirc nese e do ta dergoj

    Ardi
    Forgiving Islamic Terrorists is Gods Duty, Our Duty Is To arrange the Meeting
    N. H. Schwarzkopf
     
  8. Maska e qoska

    qoska said:
    Gepard une nuk e di per cfare e kerkon kete psh:
    nese do te bllokosh hapjen e disa adresave me e mira eshte ti bllokosh gjate kohes qe dergohet nje HTTP CONNECT ne ate adrese sic bejne squidguard e shume te tjere, ne vend ta kerkosh gjate hapjes se faqes.

    Se perndryshe nuk e kuptoj per cfare mund ta duash kete funksionalitet pervec sigurise!?!!?
     
  9. Maska e Gepardi

    Gepardi said:
    Qoska

    Une desha te ndertoj nje aplikacion qe "parse" titujt e lajmeve nga disa prej gazetave kryesore. Pra duke derguar nje HTTP Request do te mund te marr HTML e faqes ne nje HTTP Response. Kete tekst do ta perpunoj duke shkeputur si fillim vetem lidhjet () dhe pastaj ato qe perbeje lajm. Kjo mund te realizohet dhe direkt nese e nderton sakte RegEx pasi psh URL e nje lajmi mund te jete www.faqja.com/shikolajm.php?id=23 . Nese duhet ti krijoj mundesine qe te shtohen faqe gazetash te ndryshme (p.sh duke percaktuar URL fillesatre dhe URL tip te lajmit) duhet te perdor RegEx detyrimisht sepse keto lejojne pergjithesim dhe do te punojne dhe ne nje faqe te paformatuar plotesisht ne menyre korrekte.

    Pra qellimi im eshte te bej nje eksperimentim me "Parsing" ne nje aplikacion desktop por kjo mund te realizohet dhe ne nje aplikacion web ne te njejten menyre. Edhe pse me ane te RSS ky proces eshte shume me i shpejte dhe i thjeshte jo te gjitha faqet ofrojne RSS dhe sic e thashe me siper me shume dua te eksperimentoj edhe pse mund te mos jete menyra me e mire.

    Gjithsesi nga sa lexova keto dite vura re se menyra e vetme per te bere ate qe dua une me regex eshte pikerisht perdorimi i LookAround (LookAhead+LookBehind) sepse me keto "Pattern" mund te kapesh tekstin brenda tagut dhe atributin(kerkon per tekst te rrethuar nga nje tekst) kurse me ato qe jane permendur me lart kap thjesht HTML te plote te nje lidhjeje() Nje dokumentim mbi kete ndodhet ne lidhjen qe permendi dhe Ardi.

    Nese percakton nje Regex te duhur po ne kete menyre mund te parsen URL e imazheve nje nje faqe te caktuar e keshtu me rradhe nje pafundesi informacioni.
     
  10. Maska e Clauss

    Clauss said:
    e, atehere regex qe te ka dhene ardi_pg_id eshte do te te beje punen marshalla. bile eshte dhe shume i sigurt.

    on the other hand, eshte e nevojshme te besh negate [^>] dhe [^"] ?? thanks
    You were meant for me. Perhaps as a punishment.