abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 04:55 | Komunita

    Nové verze webových prohlížečů Chrome a Firefox jsou vydávány každé 4 týdny. Aktuální verze Chrome je 150. Aktuální verze Firefoxu je 152. V březnu bylo oznámeno, že od září přejde Chrome na dvoutýdenní cyklus vydávání verzí. To by znamenalo, že Chrome v číslování verzí Firefox brzy přeskočí. Vývojáři Firefoxu proto také od září přecházejí na dvoutýdenní cyklus vydávání verzí. :-)

    Ladislav Hagara | Komentářů: 2
    dnes 00:22 | Zajímavý software

    Microsoft Comic Chat (Wikipedie), tj. grafický IRC klient z devadesátek, který převáděl konverzace na IRC do podoby komiksových panelů, a který zpopularizoval font Comic Sans, je dnešním dnem open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

    Ladislav Hagara | Komentářů: 1
    včera 19:55 | Nová verze

    Byla vydána (𝕏) nová verze 26.7 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 26.7 je Xenial Xenops. Přehled novinek v příspěvku na fóru.

    Ladislav Hagara | Komentářů: 0
    včera 14:44 | IT novinky

    Na Seznam nepovolených internetových her (Wikipedie) se k 13. 7. 2026 dostala predikční platforma Polymarket.

    Ladislav Hagara | Komentářů: 5
    včera 14:22 | Zajímavý článek

    Nová čísla časopisů od nakladatelství Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 167 (pdf) a Hello World 30 (pdf).

    Ladislav Hagara | Komentářů: 0
    včera 00:44 | Nová verze

    Byla vydána nová verze 3.22.0 grafického vývojového prostředí a platformy Gambas (Wikipedie) založené na interpretru programovacího jazyka Basic s rozšířením o objektově orientované programování. Přehled novinek v poznámkách k vydání. Zdrojové kódy jsou k dispozici na GitLabu.

    Ladislav Hagara | Komentářů: 0
    15.7. 20:22 | Komunita

    FreeBSD odstranilo poslední GPL kód ze základního systému. Konkrétně dpv, libdpv, libfigpar a dialog. Instalátor před čtyřmi lety přešel z dialogu na bsddialog.

    Ladislav Hagara | Komentářů: 2
    15.7. 15:22 | IT novinky

    Sociální síti 𝕏 (dříve Twitter) má dnes 20 let. Pro veřejnost byla zpřístupněna 15. července 2006.

    Ladislav Hagara | Komentářů: 2
    15.7. 14:22 | Zajímavý software

    Insula Faktury je open source generátor faktur, který běží přímo ve webovém prohlížeči. Žádná registrace, žádné sledování, žádné omezení. Zdrojové kódy jsou k dispozici na Codebergu.

    Ladislav Hagara | Komentářů: 18
    15.7. 13:22 | Komunita

    První Mobile Linux Hackday v Plzni, tj. komunitní setkání věnované Linuxu na mobilních zařízeních, proběhne 24. července od 10:00. Akce je otevřená všem zájemcům – od zvědavců po zkušené vývojáře. Dopoledne proběhnou přednášky Davida Heidelberga a Petra Hodiny o aktuálním stavu mobilního Linuxu: proč vůbec chtít tučňáka v kapse, jaké telefony jsou dnes dobře podporované a co taková podpora obnáší. Po obědě se zaměříme na konkrétní

    … více »
    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (7%)
     (2%)
     (17%)
     (31%)
     (4%)
     (6%)
     (2%)
     (15%)
     (25%)
    Celkem 2148 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Dotaz: Regulární výraz-získání hodnot

    26.9.2007 18:32 filbar | skóre: 36 | blog: Denicek_programatora | Ostrava
    Regulární výraz-získání hodnot
    Přečteno: 361×

    Nevíte, jak ze souboru tohoto typu:

     <option value="152">Abertamy</option>
                          <option value="269">Adamov u Brna</option>
                          <option
                  value="479">Adolfovice</option>
                          <option value="182">Adršpach</option>
                          <option value="170">Albrechtice</option>
                          <option
                  value="271">Aš</option>
                          <option value="293">Babylon</option>
                          <option
                  value="459">Bačetín</option>
                            <option value="179">Bartošovice v
                              Orlických horách</option>
                          <option value="410">Batelov</option>
                          <option value="155">Batňovice</option>
                            <option value="233">Bečov nad
                              Teplou</option>
                          <option value="1">Bedřichov</option>
                          <option
                  value="349">Bechyně</option>
    

    získat asi nejlépe pomocí nějakého rogulárního výrazu ty hodnoty value="xxx" a pak textové hodnoty jako např.: Abertamy, a udělal z nich řetězce jako

    INSERT INTO #__tabulka SET id=152, name=Abertamy;

    Za odpovědi předem děkuji.

    Odpovědi

    26.9.2007 18:38 neaktivni | skóre: 24 | blog: neaktivni
    Rozbalit Rozbalit vše Re: Regulární výraz-získání hodnot
    vzhledem ke sve lenosti bych to udelal asi pomoci PHP (i to vkladani do db) pres SimpleXML
    26.9.2007 18:44 pupu | skóre: 31
    Rozbalit Rozbalit vše Re: Regulární výraz-získání hodnot
    Pokud je to co radek, to jeden zaznam, je to trivialni. Pokud ne, tak to uz tak trivialni neni.

    trivialni reseni muze byt treba takhle: perl -ne '/<option value=\"(\d+)\">([^<]+)<\/option>/ && print "$2 $1\n"'

    Vyhovuje?

    poznamka pro administratory: je opravdu tak zasadni problem pridat do zahlavi zatrhavatko 'prosty text'? prepisovat html znovu do html je drobet opruz
    26.9.2007 18:53 filbar | skóre: 36 | blog: Denicek_programatora | Ostrava
    Rozbalit Rozbalit vše Re: Regulární výraz-získání hodnot
    Je to co řádek to záznam, ale problém je, že někdy je text option na jednom řádku a pokračování na druhém
    26.9.2007 19:31 pupu | skóre: 31
    Rozbalit Rozbalit vše Re: Regulární výraz-získání hodnot
    Hmm. Vzhledem k tomu, ze jsem zname prase jdouci cestou nejmensiho odporu a na estetiku nehledici, udelal bych to klidne takhle (pokud bych tedy fakt hodne spechal):

    perl -e 'while (<>) {chomp;$radek=$radek." ".$_;}; $radek=~s/option>/option>\n/g; print $radek' <vstup |perl -ne '/<option\s+value=\"(\d+)\">([^<]+)<\/option>/ && print "$2 $1\n"' >vystup

    Akorat to produkuje mezery v mistech, kde je zalomeny radek, protoze tam ty mezery skutecne jsou. Asi bych doporucil spis nejake uz hotove udelatko pro praci s XML, tohle uz je vazne pakarna.
    26.9.2007 19:56 pupu | skóre: 31
    Rozbalit Rozbalit vše Re: Regulární výraz-získání hodnot
    No, neda mi to ;-) Pokud by se nelibily mezery, jeste muzete pridat jedno s/\ \ +/\ /g; - pokud jsou v tom souboru tedy opravdu jen mezery a ne treba tabulatory.
    26.9.2007 19:02 Filip Jirsák | skóre: 67 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Regulární výraz-získání hodnot
    Pokud nechcete podnkita dobrodružství ohledně toho, jak se tagy zrovna zalomí, nepoužívejte regulární výrazy, ale udělejte z toho normální XML (tj. zabalte to celé např do <data>…</data>) a použijte XPath. Takže třeba libovolný xslt procesor a použijte následující transformaci:
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:output method="text"/>
    	<xsl:template match="option">
    INSERT INTO #__tabulka SET id=<xsl:value-of select="@value"/>, name='<xsl:value-of select="."/>';
    	</xsl:template>
    </xsl:stylesheet>
    
    Pokud přidáte k datovému souboru instrukci pro zpracování, zobrazí vám výsledek i každý lepší webový prohlížeč.
    <?xml version="1.0 ?>
    <?xml-stylesheet type="text/xml" href="template.xsl" ?>
    <data>
    	<option value="152">Abertamy</option>
    	…
    </data>
    
    26.9.2007 19:33 filbar | skóre: 36 | blog: Denicek_programatora | Ostrava
    Rozbalit Rozbalit vše Re: Regulární výraz-získání hodnot
    A jde nějak pomocí toho zajistit, aby se odstranily zalomená řádků? Když je v tom souboru např.:
    Benešov nad 
                              Černou
    
    tak aby se z toho stalo
    Benešov nad Černou
    26.9.2007 19:56 Filip Jirsák | skóre: 67 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Regulární výraz-získání hodnot
    Zkuste místo <xsl:value-of select="."/> použít
    <xsl:value-of select="normalize-space(.)"/>
    
    případně
    <xsl:value-of select="normalize-space(translate(.,'&#10;&#13;','  '))"/>
    
    26.9.2007 20:11 filbar | skóre: 36 | blog: Denicek_programatora | Ostrava
    Rozbalit Rozbalit vše Re: Regulární výraz-získání hodnot
    Super, díky, funguje;-);-)
    26.9.2007 19:48 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Regulární výraz-získání hodnot
    Pokud toužíte po reg. výrazech, tak velmi zhruba nástin v Javě:
    Pattern p = Pattern.compile("<option value=\"([1-9][0-9]*)\">(.*?)</option>", Pattern.DOTALL);
    Matcher m = p.matcher(...data...);
    while(m.find()) System.println("INSERT INTO #__tablulka SET id=" + m.group(1) + ", name=" + m.group(2));
    ale osobně bych šel do té transformace :)

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.