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 03:22 | Nová verze

    Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.20. Díky 227 přispěvatelům.

    Ladislav Hagara | Komentářů: 0
    dnes 03:11 | Komunita

    Simon Long oznámil Raspberry Pi Desktop pro PC a Mac s Intelem postavený na aktualizovaném Debianu 13 Trixie. S klientem Raspberry Pi Connect pro vzdálenou správu. Ke stažení je vedle Raspberry Pi OS pro Raspberry Pi.

    Ladislav Hagara | Komentářů: 0
    včera 21:33 | Zajímavý projekt

    ESP32-C3 adblock přemění lacinou vývojovou desku ESP32‑C3 na samostatný DNS blokovač nejenom reklamních domén, minimalistickou alternativu k populárnímu Pi-hole. ESP32-C3 adblock místo objemných názvů domén ukládá jejich 40-bitové FNV-1a hashe do flash paměti, které pak binárně prohledává, kontrola jedné domény trvá přibližně 10 milisekund. Blocklist pojme až 537 tisíc domén a lze jej spravovat přes webové rozhraní. Projekt zatím

    … více »
    ❗Červivý Hřib krade❗ | Komentářů: 0
    včera 21:00 | Zajímavý software

    ArtCraft je sada open source aplikací pro práci s obrázky a videi "inspirovaných" aplikacemi od Adobe. Napsaných v Rustu. Pro MacOS, Windows i Linux. Běží také ve webovém prohlížeči. Aktuálně se jedná o 7 aplikací: PhotoCraft (Photoshop), VectorCraft (Illustrator), FilmCraft (Premiere Pro), LightCraft (Lightroom), PdfCraft (Acrobat), EffectCraft (After Effects) a DesignCraft (InDesign). Zdrojové kódy jsou k dispozici na GitHubu.

    Ladislav Hagara | Komentářů: 7
    včera 16:33 | Zajímavý software

    Strands Decider 2B je malý open-source model s 2 miliardami parametrů, určený k rychlé klasifikaci vstupů a rozhodování mezi možnostmi, generující odpovědi ve stylu modelu Jev. Strands dosáhl přibližně 72% shody s Jevem na veřejné testovací sadě JevBench (tento benchmark pochopitleně nepředstavuje přímé srovnání s modelem Jev). Zdrojové kódy jsou k dispozici na GitHubu pod licencí Apache-2.0, váhy modelu na Hugging Face.

    ❗Červivý Hřib krade❗ | Komentářů: 3
    včera 16:22 | Upozornění

    Ve věku 90 let zemřela americká softwarová inženýrka Margaret Hamiltonová, která vedla tým, jenž vyvíjel letový software pro program Apollo amerického Národního úřadu pro letectví a vesmír (NASA).

    Ladislav Hagara | Komentářů: 5
    včera 13:33 | Humor

    Japonský Google rozšířil svou kolekci DYI fyzických klávesnic Gboard o klávesnici ve tvaru běžícího pásu. Proč se mají přesouvat ruce po klávesnici, když se mohou přesouvat klávesy k ruce? Pro zájemce je návod na sestavení včetně STL souborů pro 3D tisk a firmware k dispozici na GitHubu.

    Ladislav Hagara | Komentářů: 2
    7.10. 23:22 | Bezpečnostní upozornění

    Nejnovější X.Org X server 21.1.25 a Xwayland 24.1.14 řeší 12 bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 0
    7.10. 16:33 | Nová verze

    Google Chrome 155 byl prohlášen za stabilní. Přináší podporu JPEG XL (.jxl). Opraveno bylo 247 bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 1
    7.10. 16:00 | Komunita

    Konference OpenAlt 2026 hledá přednášející. Přihlásit přednášky lze do neděle 11. října. Konference 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
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2817 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: Regex na cestu k souboru v xml/cpp

    18.4.2017 20:37 דניאל | blog: godismyjudge
    Regex na cestu k souboru v xml/cpp
    Přečteno: 672×
    Potŕeboval bych poradit s regexem. Potřebuji v Qt, pomocí QRegularExpression, udělat regex, který mi v souborech najde řetězce, které jsou cesty "resource souborů" v Qt. Taková cesta má formát :/nějaká/cesta/soubor.abc. Potřebuji capture na část nějaká/cesta/soubor.abc. Problém je, že jednoduchý regex mi pak matchne v řetězci return ":/nějaká/cesta"; const char *a = ".txt"; část ":/nějaká/cesta"; const char *a = ".txt, což je špatně. Musím to tedy udělat přísněji. Cesta je buď v dvojitých uvozovkách, v jednoduchých uvozovkách, v html/xml tagu nebo v css v závorkách (např. url(:/bla/bla.abc)). A to je problém. Chtěl bych to mít jako jeden regex, kde by to bylo zkombinované. Nějak bych to nakombinoval s or operací, ale pak bych měl třeba na ":/moje/cesta.abc&t;/tag> match, což také nechci.

    Nejdále jsem se dostal k regexu (["']:\/|>\s*?:\/|\(:)(.*?)(["']|\s*?<|\)) (můžete vyzkoušet třeba na regex101.com). Jenže to matchuje i to, co nechci.
    ":/moje/cesta.abc"
    
    ':/moje/cesta.abc'
    
    <url>:/moje/cesta.abc</url>
    
    <bla><a>:/moje/cesta1.abc<b>:/moje/cesta2.abc</bla>
    
    neco: url(:/moje/cesta.abc)
    
    ":/moje/cesta.abc' // nechci match
    
    <url>:/moje/cesta.abc' // nechci match
    

    Odpovědi

    18.4.2017 20:42 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Regex na cestu k souboru v xml/cpp
    Zkus s tím souborem pracovat jako s XML - tyto problémy odpadnou.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    19.4.2017 05:58 דניאל | blog: godismyjudge
    Rozbalit Rozbalit vše Re: Regex na cestu k souboru v xml/cpp
    Neodpadnou. Jsou to soubory vícero typů (xml/ui, cpp a css), snažím se o regex, který je obslouží všechny (protože v cpp stejně můžu mít kus css či xml/html jako řetězec), pokud možno s co nejméně falešnými výsledky. Ten regex, co jsem napsal, to více méně zvládne, ale je takový ošklivý, jestli by nešel zjednodušit. Ty poslední 2 matche, které nejsou chtěné, zatím tak hrozně nevadí, ale bylo by lepší, kdyby nebyly.
    19.4.2017 07:50 NN
    Rozbalit Rozbalit vše Re: Regex na cestu k souboru v xml/cpp
    Puzil bych negativni lookahead. Nekdy je lepsi hledat podminku ktera "nevyhovuje".
    19.4.2017 09:03 ramlok0
    Rozbalit Rozbalit vše Re: Regex na cestu k souboru v xml/cpp
    hledas 4 specificke podminky - zacatek/konce matche - tohle funguje:

    (["]:\/)(.*?)(["])|([']:\/)(.*?)(['])|([>]:\/)(.*?)([<])|([(]:\/)(.*?)([)])
    19.4.2017 19:17 דניאל | blog: godismyjudge
    Rozbalit Rozbalit vše Re: Regex na cestu k souboru v xml/cpp
    Ano, matche jsou správné, ale zase tam je problém, že capture group pro tu cestu je pokaždé jiná.
    wamba avatar 19.4.2017 20:29 wamba | skóre: 38 | blog: wamba
    Rozbalit Rozbalit vše Re: Regex na cestu k souboru v xml/cpp

    Tak je lze pojmenovat. Navíc pravděpodobně půjde regexp složit s řetězců. Tak můžete napsat obdobu následujícího Perl one-lineru:

    perl -nE '
        BEGIN {
            my $cesta = ":(?<cesta>.*?)";
            our $rx= join "|", map {sprintf $_, $cesta} (q{"%s"}, q{\'%s\'}, q{>%s<}, q{\(%s\)});
            say $rx 
        };
        say $+{cesta} while /$rx/g
    ' /tmp/pom.txt             
    
    ":(?<cesta>.*?)"|':(?<cesta>.*?)'|>:(?<cesta>.*?)<|\(:(?<cesta>.*?)\)
    /moje/cesta.abc
    /moje/cesta.abc
    ...
    
    This would have been so hard to fix when you don't know that there is in fact an easy fix.
    20.4.2017 19:01 דניאל | blog: godismyjudge
    Rozbalit Rozbalit vše Re: Regex na cestu k souboru v xml/cpp
    Když tam ale mám stejné názvy, dostávám chybu "A subpattern name must be unique" :-(
    wamba avatar 20.4.2017 19:41 wamba | skóre: 38 | blog: wamba
    Rozbalit Rozbalit vše Re: Regex na cestu k souboru v xml/cpp
    v Perlu to funguje, tak je třeba odzkoušet jestli to nefunguje i v Qt a nespoléhat se na implementaci na https://regex101.com/
    This would have been so hard to fix when you don't know that there is in fact an easy fix.
    21.4.2017 13:01 RM
    Rozbalit Rozbalit vše Re: Regex na cestu k souboru v xml/cpp
    Já, pokud má být cílem minimalizovat nečitelnost (reg. výrazu), bych ty dva řádky napsal takhle (já ten sprintf nemusim;):
        $cesta = ":(?<cesta>.*?)";
        @maska=qw{ "cesta" 'cesta' >cesta< \(cesta\) };
        s/cesta/$cesta/ foreach @maska;
        $rx= join "|", @maska;
    
    20.4.2017 15:02 ramlok0
    Rozbalit Rozbalit vše Re: Regex na cestu k souboru v xml/cpp
    Ok, opraveno, ted je capture group vzdy stejna. ((["'])|(>)?|(\()?):\/(.*?)(\1|(?(1)<)|(?(1)\)))
    20.4.2017 18:58 דניאל | blog: godismyjudge
    Rozbalit Rozbalit vše Re: Regex na cestu k souboru v xml/cpp
    Teď to ale matchuje ty 2, které nechci, a naopak ty, co chci, to nematchuje. No asi to nebude tak jednoduché, jak jsem si myslel.
    ":/moje/cesta.abc'
    <url>:/moje/cesta.abc'
    
    20.4.2017 19:38 ramlok0
    Rozbalit Rozbalit vše Re: Regex na cestu k souboru v xml/cpp
    Hm, me to funguje, nemas extra mezeru za posledni zavorkou?
    wamba avatar 20.4.2017 20:08 wamba | skóre: 38 | blog: wamba
    Rozbalit Rozbalit vše Re: Regex na cestu k souboru v xml/cpp
    u mě to taky funguje, ale selže to při: <url>:/cest/a)
    This would have been so hard to fix when you don't know that there is in fact an easy fix.
    21.4.2017 19:33 דניאל | blog: godismyjudge
    Rozbalit Rozbalit vše Re: Regex na cestu k souboru v xml/cpp
    Opravdu to byla mezera na konci, omlouvám se. Teď je stále na těch 2 posledních ale match, s tím, že group 0 je :/ a ostatní jsou prázdné. Ale je to pokrok, děkuji.
    20.4.2017 20:03 Charon
    Rozbalit Rozbalit vše Re: Regex na cestu k souboru v xml/cpp
    OK, zkusil jsem pro Vás inovaci REGEX od RAMLOK.
    ((["'])|[>\(]):\/(.*?)(\2|[<\)])
    Přínosem v řešení je dekompozice stop-tokenů od match-textu. Tím vznikne kratší zápis, který je i přehlednější. Čímž neříkám, že původní zápis byl špatný. Nuže, posuďte teď můj.

    Bye.
    21.4.2017 19:41 דניאל | blog: godismyjudge
    Rozbalit Rozbalit vše Re: Regex na cestu k souboru v xml/cpp
    Tohle vypadá opravdu dobře, asi ho použiju. Regexem to asi lépe nepůjde a bez plnohodnotných parserů prostě nechtěný match bude moci nastat. To s tou \2 teď vidím poprvé, netušil jsem, že něco takového jde.

    Založit nové vlákno • Nahoru

    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.