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:33 | Komunita

    Konference OpenAlt 2026 hledá přednášející. Proběhne o víkendu 7. a 8. listopadu na půdě Fakulty informačních technologií VUT v Brně. Témata konference jsou: Otevřený a svobodný software, IoT a Hnutí tvůrců, Vzdělávání, Bezpečnost a soukromí, Otevřená společnost, komunity a data, OpenMobility a další.

    Ladislav Hagara | Komentářů: 0
    dnes 04:22 | IT novinky

    Společnosti OpenAI a Broadcom oznámily čip optimalizovaný pro AI pojmenovaný Jalapeño.

    Ladislav Hagara | Komentářů: 0
    včera 20:22 | Nová verze

    Deno (Wikipedie), běhové prostředí (runtime) pro JavaScript, TypeScript a WebAssembly, bylo vydáno v nové verzi 2.9. Hlavní novinkou je deno desktop pro převod Deno projektu na desktopovou aplikaci. Jedná se o alternativu k frameworkům Electron nebo Tauri.

    Ladislav Hagara | Komentářů: 2
    včera 15:44 | IT novinky

    Od zítra jsou Datové schránky oficiálně na nové adrese datovka.gov.cz. Adresa mojedatovaschranka.cz zůstává funkční do 27. srpna 2026, následně budou uživatelé automaticky přesměrováni na datovka.gov.cz.

    Ladislav Hagara | Komentářů: 3
    včera 13:44 | Nová verze

    Dolphin (Wikipedie), tj. open source multiplatformní emulátor herních konzolí GameCube a Wii od Nintenda, byl vydán ve verzi 2606. S podporou Game Boy Playeru.

    Ladislav Hagara | Komentářů: 0
    včera 11:11 | Zajímavý software

    Vasudeva Kamath představil utilitu debvulns, alternativu k nativní utilitě debsecan, pro výpis zranitelností v Debianu. Navíc má především možnost výstupu ve strukturovaných formátech JSON a CSV. V plánu je exportér pro Prometheus.

    Ladislav Hagara | Komentářů: 0
    24.6. 21:44 | IT novinky

    Oficiální český státní eshop s elektronickými dálničními známkami nově najdete na edalnice.gov.cz. Doména gov.cz jasně potvrzuje, že jste na oficiálním státním webu [𝕏].

    Ladislav Hagara | Komentářů: 26
    24.6. 14:22 | Nová verze

    Byla vydána nová verze 4.8.0 interaktivního shellu fish (friendly interactive shell, Wikipedie). Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 6
    24.6. 12:00 | Nová verze

    Byl aktualizován seznam 500 nejvýkonnějších superpočítačů na světě TOP500. Nejvýkonnějším superpočítačem se nově stal čínský LineShine v Národním superpočítačovém centru v Šen-čenu (NSCS) s výkonem 2,198 exaFLOPS. Z prvního místa sesadil americký superpočítač El Capitan s výkonem 1,809 exaFLOPS. Nejvýkonnější český počítač C24 klesl na 215 místo. Karolina, GPU partition klesla na 249. místo a Karolina, CPU partition na 475. místo.

    … více »
    Ladislav Hagara | Komentářů: 16
    23.6. 21:00 | IT novinky

    Zemřel průkopník videoherní hudby Bobby Prince (Wikipedie). Složil hudbu pro hry Wolfenstein 3D, Doom, Doom II, Duke Nukem II a Duke Nukem 3D.

    Ladislav Hagara | Komentářů: 18
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (8%)
     (2%)
     (17%)
     (31%)
     (3%)
     (6%)
     (2%)
     (15%)
     (26%)
    Celkem 1990 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Dotaz: php eregi_replace

    19.2.2009 17:52 filbar | skóre: 36 | blog: Denicek_programatora | Ostrava
    php eregi_replace
    Přečteno: 511×

    Jak v PHPku v eregi_replace, nebo jiné funkci pro regulérní výrazy zadám, že má nahrazovat pouze pokud je sudý počet určitých znaků.

    Konkrétně potřebuju pracovat s textem, který je rozdělen do řádků a řádky do elementů pomocí znaku ; Jenomže jak znak konce řádků, tak ; může být součástí textu a to že to tak není se pozná podle toho jestli je před \r\n a ; nula, nebo sudý počet \.

    Odpovědi

    19.2.2009 19:56 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: php eregi_replace
    Něco jako \(..\)* nestačí?
    19.2.2009 19:58 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: php eregi_replace
    Bez těch lomítek.
    21.2.2009 11:44 filbar | skóre: 36 | blog: Denicek_programatora | Ostrava
    Rozbalit Rozbalit vše Re: php eregi_replace

    Bez jakých lomítek?

    Mám takový textový soubor:

    toto ma byt na jedne \
    radce
    a toto taky \\
    toto má být na další řádce
    Zkoušel jsem vymyslet něco takového:
    <?php
    $h=fopen("text.txt","r");
    $text=fread($h,filesize("text.txt"));
    fclose($h);
    
    $pole=spliti("((\\\\\\\\)*\n)",$text);
    array_pop($pole);
    print_r($pole);
    echo "<hr>";
    $pole=preg_split("/(\\\\\\\\)*\n/",$text);
    array_pop($pole);
    print_r($pole);
    ?>
    
    Jenomže obojí mi text vypíše jako
    Array ( [0] => toto ma byt na jedne \ [1] => radce [2] => a toto taky [3] => toto ma byt na dalsi radce  ) 
    Array ( [0] => toto ma byt na jedne \ [1] => radce [2] => a toto taky [3] => toto ma byt na dalsi radce ) 
    
    Místo:
    Array ( [0] => toto ma byt na jedne \ radce [1] => a toto taky [2] => toto ma byt na dalsi radce ) 
    Array ( [0] => toto ma byt na jedne \ radce [1] => a toto taky [2] => toto ma byt na dalsi radce ) 
    
    Kde dělám chybu? Proč mi to rozdělí ten text po tom lomítku v [0]? Předem děkuji za vaše odpovědi.
    21.2.2009 14:55 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: php eregi_replace
    Lomítko je výraz pro slash, čili tento znak: ---> \, zde se jedná o backslash, čili zpětné lomítko.

    Takže oprava mého komentáře

    Něco jako \(..\)* nestačí?

    po aplikaci "bez těch lomítek"

    vychází takto:

    Něco jako (..)* nestačí?

    Zjevně to nestačí, na popsání výrazu skoro ano, ale problém funkce split je, že popsaný výraz z výsledku vykousne, což je problém u výrazu kde je 0 lomítek. 2, 4, 6 lomítek popíšete (\\\\\\\\)+\n, nula lomítek zase [^\\\\]\n, ale to vám sežere to jedno písmeno (nelomítko) před koncem řádku.

    Takže výraz jako jako ([^\\\\]|(\\\\\\\\)+\n nebo [^\\](\\\\\\\\)*\n což je zhruba totéž funguje, problém je že tímto se sice popíše daný řetězec, ale někdy ještě jeden znak před tím koncem řádku bez lomítka. Řešení zatím nevidím, je to asi mimo rámec těchto regulárních výrazů (je to problém že chcete popsat kontext ale necete ten kontext vykousnout).
    21.2.2009 14:57 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: php eregi_replace
    opr.: ([^\\\\]|(\\\\\\\\)+)\n
    21.2.2009 15:00 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: php eregi_replace
    Bude to chtít projet ten vstupní řetězec a zkonsolidovat ho, třeba \n kterému nepředchází žádné lomítko nahradit dvěma lomítky a \n, tedy \\\n. Že by to přecejen nějak šlo jen tou fcí split se mi nezdá.
    23.2.2009 13:48 YYY | skóre: 29 | blog: martinek
    Rozbalit Rozbalit vše Re: php eregi_replace
    Pouzij explode a mas to na par radek.
    23.2.2009 14:00 filbar | skóre: 36 | blog: Denicek_programatora | Ostrava
    Rozbalit Rozbalit vše Re: php eregi_replace
    A explode umí regulární výrazy?
    23.2.2009 17:58 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: php eregi_replace
    Však to dělá, vizte diskuzi. Přesněji používá split/preg_split kvůli regexp/pcregexp. Na pár řádek to zatím nevypadá, spíš na dvouprůchodové řešení :)

    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.