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 11:11 | Zajímavý software

    astroterm je počítačové planetárium v terminálu. Aktuální verze je 1.0.7.

    Ladislav Hagara | Komentářů: 0
    dnes 01:33 | Nová verze

    Databáze DuckDB (Wikipedie) byla vydána ve verzi 1.2.0. S kódovým názvem Histrionicus (kačka strakatá). Z novinek lze vypíchnout, že například 🦆 může být nově použita jako vícebajtový oddělovač sloupců. 😂

    Ladislav Hagara | Komentářů: 5
    včera 14:22 | Nová verze

    Google Chrome 133 byl prohlášen za stabilní. Nejnovější stabilní verze 133.0.6943.53 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 12 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

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

    Novinky v Knot Resolver 6: ochrana před DoS útoky – technické řešení, aktuální příspěvek na blogu zaměstnanců CZ.NIC.

    Ladislav Hagara | Komentářů: 0
    včera 04:33 | Nová verze

    Smb4K, tj. pokročilý prohlížeč síťového okolí a nástroj na připojování úložišť Samba, byl vydán v nové major verzi 4.0.0. Proběhla portace na Qt 6 a KF 6.

    Ladislav Hagara | Komentářů: 3
    včera 02:00 | IT novinky

    V červnu loňského roku představena RISC-V základní deska pro Framework Laptop 13 je již v prodeji. Její cena je 4990 Kč. Díky otevřenosti Framework Laptopů začínají vznikat moduly třetích stran, například SDR modul nebo modul s dotykovým e-paperem.

    Ladislav Hagara | Komentářů: 8
    4.2. 23:33 | IT novinky

    Video Game History Foundation (VGHF, Wikipedie), tj. nadace zabývající se historii videoher byla založena v únoru 2017. Od svého vzniku buduje také digitální knihovnu. Po letech katalogizace, zpracovávání a digitalizace svých sbírek ji otevřela veřejnosti. Zdarma, pro všechny a odkudkoli: Library a Digital Archive.

    Ladislav Hagara | Komentářů: 0
    4.2. 16:00 | Nová verze

    Byl vydán Mozilla Firefox 135.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 135 je již k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    4.2. 13:55 | IT novinky

    Dnes vychází Kingdom Come: Deliverance II (Wikipedie), pokračování počítačové hry Kingdom Come: Deliverance (Wikipedie, ProtonDB Gold).

    Ladislav Hagara | Komentářů: 25
    4.2. 12:00 | Komunita

    Byly publikovány přednášky v PDF, videozáznamy a také fotografie z CSNOG 2025 (Czech and Slovak Network Operators Group) konaného 21. a 22. ledna ve Zlíně.

    Ladislav Hagara | Komentářů: 0
    Rozcestník

    Dotaz: Rozdělení textu, pomoc s regulárním výrazem.

    Martin Stiborský avatar 11.11.2009 19:25 Martin Stiborský | skóre: 26 | blog: Stibiho bláboly | Opava
    Rozdělení textu, pomoc s regulárním výrazem.
    Přečteno: 254×

    Ahoj.

    Mám textový řetězec, ze kterého potřebuji vytáhnout jeho části podle určitého vzoru, bohužel je více možností, jak ten řetězec může vypadat.

    Varianty jsou:

    • :: První část :: Druhá část
    • :: Jenom jedna část
    • Nebo jen kus textu bez teček
    Druhá část tedy být může a nemusí, jistota je, že tam bude kus textu, který může a nemusí být uvozen tečkami.
    No a já potřebuji získat odděleně ty dvě části, pokud jsou dvě, jinak vybrat jenom tu jednu.
    Celé to provádím v Pythonu, je to součást Qt programu. Zkoušel jsem to přes split(). Split z Qt knihovny má fajn příznak "SkipEmptyParts", takže toto:

    QtCore.QString(":: První část :: Druhá část").split("::", QtCore.QString.SkipEmptyParts)

     

    Mi vrátí přesně ty dvě části. Takže kdybych vymyslel jak ošetřit výjimku ValueError při neexistenci druhé části při volání tohoto:

     

    prvniCast, druhaCast = text.split("::", QtCore.QString.SkipEmptyParts)

     

    Tak by se mi to líbilo :) Když druhá část neexistuje, potřeboval bych té proměnné přiřadit "None", to by bylo ideální.

    No a nebo můžu použít regulární výraz, nevím který postup bude lepší. Mám tu jeden, který jsem před nějakou dobou asi stvořil, ale mám ho neokomentovaný, takže nemám šajn jak to funguje (no, možná zlehka tuším :) ) , jako obvykle když se trápím s regexpy.

     

    re.compile(r"(?P<name>^::\w[^::]+)?(?P<text>.*)", re.UNICODE)

     

    Jak by jste to řešili vy prosím ?

    Děkuji za pomoc.

    Kvík ..

    Odpovědi

    11.11.2009 20:59 l4m4
    Rozbalit Rozbalit vše Re: Rozdělení textu, pomoc s regulárním výrazem.
    [x for x in s.split('::') if x]
    je senzam neprázdných částí.

    Pak snad stačí append(None) nebo insert(0, None) (nepochopil jsem, kde chceš to None mít), je-li délka senzamu jen 1.
    Přemek Vyhnal avatar 12.11.2009 23:02 Přemek Vyhnal | skóre: 24 | blog: Toto není blog! | Dobřichovice
    Rozbalit Rozbalit vše Re: Rozdělení textu, pomoc s regulárním výrazem.
    v pythonu nevim, ale match regexem treba nejak takhle?
    m/(::\s*)?([^:]*)((::\s*)?(.*))?/
    a bude to v $2, prip. druhy v $5
    NO RAPTORS!

    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.