abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 23:22 | Nová verze

    Hudební přehrávač Amarok byl vydán v nové major verzi 3.0 postavené na Qt5/KDE Frameworks 5. Předchozí verze 2.9.0 vyšla před 6 lety a byla postavená na Qt4. Portace Amaroku na Qt6/KDE Frameworks 6 by měla začít v následujících měsících.

    Ladislav Hagara | Komentářů: 4
    včera 21:44 | Komunita

    Ubuntu 24.10 bude Oracular Oriole (věštecká žluva).

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

    Byla vydána nová verze 2.45.0 distribuovaného systému správy verzí Git. Přispělo 96 vývojářů, z toho 38 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání. Vypíchnout lze počáteční podporu repozitářů, ve kterých lze používat SHA-1 i SHA-256.

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

    Před 25 lety, ve čtvrtek 29. dubna 1999, byla spuštěna služba "Úschovna".

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

    Byla vydána nová verze 24.04.28 s kódovým názvem Time After Time svobodného multiplatformního video editoru Shotcut (Wikipedie) a nová verze 7.24.0 souvisejícího frameworku MLT Multimedia Framework. Nejnovější Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.

    Ladislav Hagara | Komentářů: 0
    28.4. 16:33 | Nová verze Ladislav Hagara | Komentářů: 0
    28.4. 03:22 | Zajímavý článek

    V aktuálním příspěvku na blogu počítačové hry Factorio (Wikipedie) se vývojář s přezývkou raiguard rozepsal o podpoře Linuxu. Rozebírá problémy a výzvy jako přechod linuxových distribucí z X11 na Wayland, dekorace oken na straně klienta a GNOME, změna velikosti okna ve správci oken Sway, …

    Ladislav Hagara | Komentářů: 0
    28.4. 00:11 | Nová verze

    Rakudo (Wikipedie), tj. překladač programovacího jazyka Raku (Wikipedie), byl vydán ve verzi #171 (2024.04). Programovací jazyk Raku byl dříve znám pod názvem Perl 6.

    Ladislav Hagara | Komentářů: 7
    27.4. 17:44 | Nová verze

    Společnost Epic Games vydala verzi 5.4 svého proprietárního multiplatformního herního enginu Unreal Engine (Wikipedie). Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    26.4. 17:11 | Nová verze

    Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.

    Ladislav Hagara | Komentářů: 12
    KDE Plasma 6
     (75%)
     (8%)
     (2%)
     (15%)
    Celkem 884 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Dotaz: Regulární výrazy - je toto vůbec možné?

    19.9.2006 13:19 Petr Mach
    Regulární výrazy - je toto vůbec možné?
    Přečteno: 296×
    Zdravim,

    jiz nekolik hodin se peru s docela delikatnim problemem tykajiciho se regularnich vyrazu v perlu.

    Predvedu ho na zjednodusenem prikladu

    Mam 3 typy dat. rekneme ze napriklad DATUM, KATEGORIE a UDAJ, ktere lze ve zdrojovem kodu jednoznacne najit. A rekneme ze mam nejaky ten zdrojovy kod. Napriklad toto.

    DATUM 1.1.2006
    KATEGORIE A
    neco uplne jineho
    neco uplne jineho
    UDAJ udaj1
    neco uplne jineho
    neco uplne jineho
    neco uplne jineho
    neco uplne jineho
    neco uplne jineho
    UDAJ udaj2
    neco uplne jineho
    neco uplne jineho
    UDAJ udaj3
    neco uplne jineho
    neco uplne jineho
    neco uplne jineho
    KATEGORIE B
    neco uplne jineho
    neco uplne jineho
    neco uplne jineho
    UDAJ udaj4
    neco uplne jineho
    neco uplne jineho
    UDAJ udaj5
    neco uplne jineho
    neco uplne jineho
    neco uplne jineho
    UDAJ udaj6
    neco uplne jineho
    neco uplne jineho
    DATUM 2.1.2006
    neco uplne jineho
    neco uplne jineho
    UDAJ udaj7
    neco uplne jineho
    neco uplne jineho
    neco uplne jineho
    KATEGORIE C
    neco uplne jineho
    neco uplne jineho
    neco uplne jineho
    UDAJ udaj8
    

    A co potrebuji? Potrebuji ziskat UDAJ a zaroven potrebuji vedet V JAKE JE KATEGORII a JAKE MA DATUM. Datum a kategorii ma podle toho, ktere datum a kategorie je mu nejblize nadrazena.

    Takze z tohoto textu, co jsem uvedl potrebuju ziskat toto:

    udaj1 A 1.1.2006
    udaj2 A 1.1.2006
    udaj3 A 1.1.2006
    udaj4 B 1.1.2006
    udaj5 B 1.1.2006
    udaj6 B 1.1.2006
    udaj7 B 2.1.2006
    udaj8 C 2.1.2006
    

    Co jsem zkousel?

    Vytvoril jsem 3 regularni vyrazy, po jednom pro nalezeni UDAJE, KATEGORIE a DATUMU. A spojil je pomoci alternace |. Jenze oni se regularni vyrazy chovaji jinak nez jsem ocekaval, a hledaji stale pouze podle 1. regularniho vyrazu a k 2. prikroci az kdyz 1. vubec nematchne. Lze toto nejak zmenit?

    Dale me napadlo, zda neni mozne hledat od urcite pozice. Prochazel bych text znak po znaku a u kazdeho znaku bych zkusil aplikovat tyto 3 regularni vyrazy (asi dost neefektivni, ale to by se dalo skousnout) a kdyby selhaly, posunul bych se o znak dal. Jde to nejak?

    A nebo jsem jenom blbej a reseni je uplne jednoduchy?

    Diiky

    Odpovědi

    19.9.2006 13:28 five | skóre: 6 | Bratislava
    Rozbalit Rozbalit vše Re: Regulární výrazy - je toto vůbec možné?
    Ak by si ten text prechadzal po riadkoch a odkladal si aktualny datum, aktualnu kategoriu a nasledne by si ich vypisoval? Regexpy su fajn, ale je nutne takto sa trapit?

    celkom dobre nechapem co si spojil alternaciou, rozne regularne vyrazy? Neviem si to celkom dobre predstavit ;0(.
    Jiří Poláček avatar 19.9.2006 13:32 Jiří Poláček | skóre: 47 | blog: naopak | Sivice
    Rozbalit Rozbalit vše Re: Regulární výrazy - je toto vůbec možné?
    Mít to za úkol já, tak se vykašlu na regulární výrazy, sáhnu po svém oblíbeném programovacím jazyku a:

    - po řádcích čtu zdrojový soubor

    - pokud najdu řádek začínající DATUM nebo KATEGORIE, tak si do patřičných proměnných uložím aktuální hodnotu datumu či kategorie

    - pokud najdu UDAJ, vypíšu výsledek v požadovaném tvaru (kategorii a datum mám přeci v proměnných)

    - hotovo
    Sudoku omrzelo? Zkuste bobblemaze! | Statistiky jsou jak bikiny. Napoví hodně, všechno ale neukážou.
    19.9.2006 13:38 Petr Machj
    Rozbalit Rozbalit vše Re: Regulární výrazy - je toto vůbec možné?
    vidim ze jsem ten kod prilis zjednodusil:) ono je to ve skutecnosti vsechno na jednom radku a neni to vubec tak hezky citelne jak to vypada zde... Jenom regularni vyraz na udaj ma odhadem 0.5kB.

    Kazdopadne jste me inspirovali a napadla me dalsi vec - zkusit tam nejak ty radky simulovat. Zkusim to a uvidim jestli budu uspesny.

    Zatim diky
    19.9.2006 13:50 Martin Tůma | skóre: 39 | blog: RTFM | Praha
    Rozbalit Rozbalit vše Re: Regulární výrazy - je toto vůbec možné?

    A proč sem proboha nenapíšete co přesně chcete dělat? Tyhle "abstraktní problémy" tady poslední dobou začínají bejt děsná móda... Pak to dopadá přesně takhle - 0.5kB regulárníma výrazama, který stejně nevedou k cíly.

    Každý má právo na můj názor!
    bazil avatar 19.9.2006 13:56 bazil | skóre: 33 | blog: sluje | Miroslav
    Rozbalit Rozbalit vše Re: Regulární výrazy - je toto vůbec možné?
    mno ty udaje na jednom radku musi byt nejak oddelene, co si ty oddelovace prevest na konce radku ??
    19.9.2006 14:02 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
    Rozbalit Rozbalit vše Re: Regulární výrazy - je toto vůbec možné?
    19.9.2006 14:19 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: Regulární výrazy - je toto vůbec možné?
    ak je tam nejaky jednoznacny oddelovac, tak $/ = oddelovac.
    ak nie, vseobecny sposob:
    for (split /(A|B|C)/, $riadok) {
      if (/A/) { ...; next; }
      if (/B/) { ...; next; }
      if (/C/) { ...; next; }
    }
    
    19.9.2006 14:21 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: Regulární výrazy - je toto vůbec možné?
    kde:
    A ... regex pre datum
    B ... regex pre kategoriu
    C ... regex pre udaj

    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.