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í
×
    včera 17:55 | Nová verze

    Ubuntu pro testování nových verzí vydává měsíční snapshoty. Dnes vyšel 1. snapshot Ubuntu 26.04 LTS (Resolute Raccoon).

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

    Zástupci členských států EU se včera shodli na návrhu, který má bojovat proti šíření materiálů na internetu zobrazujících sexuální zneužívání dětí. Nařízení známé pod zkratkou CSAM a přezdívané chat control mělo množství kritiků a dlouho nebyla pro jeho schválení dostatečná podpora. Pro schválení byla potřeba kvalifikovaná většina a dánské předsednictví v Radě EU se snažilo dosáhnout kompromisu. Návrh nakonec po dlouhých týdnech

    … více »
    Ladislav Hagara | Komentářů: 8
    včera 12:22 | Zajímavý software

    Britské herní studio Facepunch stojící za počítačovými hrami Garry's Mod a Rust uvolnilo svůj herní engine s&box (Wikipedie) jako open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT. Herní engine s&box je postavený nad proprietárním herním enginem Source 2 od společnosti Valve.

    Ladislav Hagara | Komentářů: 1
    včera 04:55 | Komunita

    Vývoj programovacího jazyka Zig byl přesunut z GitHubu na Codeberg. Sponzoring na Every.

    Ladislav Hagara | Komentářů: 1
    včera 04:44 | Komunita

    Stejně jako GNOME i KDE Plasma končí s X11. KDE Plasma 6.8 poběží už pouze nad Waylandem. Aplikace pro X11 budou využívat XWayland.

    Ladislav Hagara | Komentářů: 2
    26.11. 14:55 | IT novinky

    Poslanci Evropského parlamentu dnes vyzvali k výraznému zvýšení ochrany nezletilých na internetu, včetně zákazu vstupu na sociální sítě pro osoby mladší 16 let. Legislativně nezávazná zpráva, kterou dnes odsouhlasil Evropský parlament poměrem 493 hlasů pro ku 92 proti, kromě zavedení věkové hranice 16 let pro využívání sociálních sítí, platforem pro sdílení videí či společníků s umělou inteligencí (AI) vyzývá také k zákazu … více »

    Ladislav Hagara | Komentářů: 46
    26.11. 14:11 | Humor

    Doom v KiCadu nebo na osciloskopu? Žádný problém: KiDoom: Running DOOM on PCB Traces a ScopeDoom: DOOM on an Oscilloscope via Sound Card.

    Ladislav Hagara | Komentářů: 3
    26.11. 12:44 | Nová verze

    Po AlmaLinuxu byl v nové stabilní verzi 10.1 vydán také Rocky Linux. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    26.11. 04:00 | Zajímavý software

    Open source reimplementace počítačových her Tomb Raider I a Tomb Raider II spolu s dalšími vylepšeními a opravami chyb TRX byla vydána ve verzi 1.0. Jedná se o sloučení projektů / enginů TR1X a TR2X do jednoho TRX. Videoukázka na YouTube.

    Ladislav Hagara | Komentářů: 1
    25.11. 17:00 | IT novinky

    Společnost Seznam.cz spouští konverzační nástroj založený na umělé inteligenci Seznam Asistent. Asistent využívá vlastní jazykový model SeLLMa a dočasně i komerční modely od OpenAI provozované v evropských datacentrech prostřednictvím Microsoft Azure. Dlouhodobým cílem Seznamu je provozovat Asistenta výhradně na interních jazykových modelech a ve vlastních datových centrech.

    Ladislav Hagara | Komentářů: 8
    Jaké řešení používáte k vývoji / práci?
     (34%)
     (46%)
     (20%)
     (18%)
     (23%)
     (16%)
     (24%)
     (16%)
     (18%)
    Celkem 413 hlasů
     Komentářů: 17, poslední 19.11. 21:57
    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: 490×

    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.