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 17:22 | IT novinky

    Byla představena nová verze modelu Claude Opus 4.6 od společnosti Anthropic. Jako demonstraci možností Anthropic využil 16 agentů Claude Opus 4.6 k vytvoření kompilátoru jazyka C, napsaného v programovacím jazyce Rust. Claude pracoval téměř autonomně, projekt trval zhruba dva týdny a náklady činily přibližně 20 000 dolarů. Výsledkem je fungující kompilátor o 100 000 řádcích kódu, jehož zdrojový kód je volně dostupný na GitHubu pod licencí Creative Commons.

    NUKE GAZA! 🎆 | Komentářů: 5
    dnes 16:44 | Komunita

    Kultovní britský seriál The IT Crowd (Ajťáci) oslavil dvacáté výročí svého prvního vysílání. Sitcom o dvou sociálně nemotorných pracovnících a jejich nadřízené zaujal diváky svým humorem a ikonickými hláškami. Seriál, který debutoval v roce 2006, si i po dvou dekádách udržuje silnou fanouškovskou základnu a pravidelně se objevuje v seznamech nejlepších komedií své doby. Nedávné zatčení autora seriálu Grahama Linehana za hatecrime však vyvolává otázku, jestli by tento sitcom v současné Velké Británii vůbec vznikl.

    NUKE GAZA! 🎆 | Komentářů: 3
    dnes 13:33 | IT novinky

    Společnost JetBrains oznámila, že počínaje verzí 2026.1 budou IDE založená na IntelliJ ve výchozím nastavení používat Wayland.

    Ladislav Hagara | Komentářů: 2
    dnes 11:22 | IT novinky

    Společnost SpaceX amerického miliardáře Elona Muska podala žádost o vypuštění jednoho milionu satelitů na oběžnou dráhu kolem Země, odkud by pomohly zajistit provoz umělé inteligence (AI) a zároveň šetřily pozemské zdroje. Zatím se ale neví, kdy by se tak mělo stát. V žádosti Federální komisi pro spoje (FCC) se píše, že orbitální datová centra jsou nejúspornějším a energeticky nejúčinnějším způsobem, jak uspokojit rostoucí poptávku po

    … více »
    Ladislav Hagara | Komentářů: 17
    dnes 11:11 | Nová verze

    Byla vydána nová verze 2.53.0 distribuovaného systému správy verzí Git. Přispělo 70 vývojářů, z toho 21 nových. Přehled novinek v poznámkách k vydání.

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

    Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 216. sraz, který proběhne v pátek 20. února od 18:00 v Red Hat Labu (místnost Q304) na Fakultě informačních technologií VUT v Brně na ulici Božetěchova 1/2. Tématem srazu bude komunitní komunikační síť MeshCore. Jindřich Skácel představí, co je to MeshCore, předvede nejrůznější klientské zařízení a ukáže, jak v praxi vypadá nasazení vlastního repeateru.

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

    Byla vydána nová major verze 9.0 multiplatformní digitální pracovní stanice pro práci s audiem (DAW) Ardour. Přehled novinek, vylepšení a oprav v poznámkách k vydání.

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

    Hodnota Bitcoinu, decentralizované kryptoměny klesla pod 70 000 dolarů (1,44 milionu korun).

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

    Valve z důvodu nedostatku pamětí a úložišť přehodnocuje plán na vydání zařízení Steam Controller, Steam Machine a Steam Frame: „Cílem tedy stále zůstává vydat všechna tři nová zařízení v první polovině letošního roku, ale přesná data a ceny jsou dvě věci, na kterých usilovně pracujeme a jsme si dobře vědomi toho, jak rychle se v tomto ohledu může vše změnit. Takže ač dnes žádné zveřejnitelné údaje nemáme, hned jak plány finalizujeme, budeme Vás informovat.“

    Ladislav Hagara | Komentářů: 4
    včera 03:11 | Komunita

    Do 20. února lze hlasovat pro wallpapery pro Ubuntu 26.04 s kódovým názvem Resolute Raccoon.

    Ladislav Hagara | Komentářů: 2
    Které desktopové prostředí na Linuxu používáte?
     (19%)
     (6%)
     (0%)
     (10%)
     (25%)
     (3%)
     (4%)
     (2%)
     (12%)
     (30%)
    Celkem 778 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    Rozcestník

    Dotaz: PHP: Regulární výraz a diakritika v UTF-8

    9.6.2009 15:44 N0rT0n | skóre: 9 | blog: Lama | Brno
    PHP: Regulární výraz a diakritika v UTF-8
    Přečteno: 5046×

    Zdravím,

    řešil už někdo prapodivné chování PHP funkce mb_ereg() ?

    regulární výraz

    mb_ereg("^[a-zA-Z]*$","příšera")

    se vyhodnotí negativně, zatímco regulární výraz

    mb_ereg("^[a-zA-Z]*","příšera")

    se vyhodnotí pozitivně (odstraněn znak pro konec řetězce).

    Výraz:

    mb_ereg("^[a-zA-Z]*$","prisera")

    se vyhodnoti pozitivně.

     

    Narazil jsem na tento problém při sestavování podstatně složitějšího výrazu, který u slov bez diakritiky fungoval naprosto bez problému. Problém je v tom, že ve výrazu nutně potřebuji omezit chování konec řetězce. Všechny patterny obsahující znak $ (pro konec řetězce) se vyhodnocují automaticky negativně.

    Vstupem i výstupem je kódování UTF-8. mb_internal_encoding() hlasi UTF-8, mb_regex_encoding() taktéž. Tím, že řetězce na vstupu jsou v UTF-8, jsem si naprosto jist. Verze PHP je 5.2.6.

     

    Má někdo nějaký nápad, či případně toto nějak řešil?

    Odpovědi

    9.6.2009 16:01 Blondak
    Rozbalit Rozbalit vše Re: PHP: Regulární výraz a diakritika v UTF-8

    mb_ereg("^[a-zA-Z]*","příšera")
    se vyhodnocuje správně pozitivně, protože souhlasí "p" na začátku, pokud budeš dělat
    mb_ereg("^[a-zA-Z]*","činka")
    tak to už vyhodnotí negativně, možná bych zkusil
    preg_match("/^[\S]*$/u","příšera")
    , ale nevím co přesně máš na vstupech.

    9.6.2009 17:41 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: PHP: Regulární výraz a diakritika v UTF-8
    se nevyhodnocuje správně pozitivně proto, že souhlasí "p" na začátku, ale proto, že výrazu ^[a-zA-Z]* vyhovuje jakýkoliv řetězec, který má začátek (to má každý) a pak náseduje 0 až N výskytů a-zA-Z. Takže by vyhovovala i šíšera.
    10.6.2009 04:01 zha
    Rozbalit Rozbalit vše Re: PHP: Regulární výraz a diakritika v UTF-8
    Takže by vyhovovala i šíšera.

    Měla by, ale proč neprojde ta činka?
    10.6.2009 07:39 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: PHP: Regulární výraz a diakritika v UTF-8
    činka projde
    10.6.2009 10:56 Blondak
    Rozbalit Rozbalit vše Re: PHP: Regulární výraz a diakritika v UTF-8

    jj, pravda nějak jsem si spletl * a +

    Tarmaq avatar 9.6.2009 16:31 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: PHP: Regulární výraz a diakritika v UTF-8
    je to jak kolega pise v tom, ze v prvnim pripade se ten regular vyhodnoti jen na p
    nevim jestli je to uplne koser reseni, ale slo by to asi udelat nejak takto:
    setlocale(LC_CTYPE, 'cs_CZ.utf8');
    $foo = iconv('utf-8', 'ascii//TRANSLIT', "příšera");
    
    # mb_ereg se vyhodnoti pozitivne
    mb_ereg("^[a-zA-Z]*$", $foo);
    
    # jinak lze pouzit i tento tvar
    mb_ereg("^[[:alpha:]]*$", $foo);
    
    Don't panic!
    9.6.2009 17:24 Sinuhet | skóre: 31
    Rozbalit Rozbalit vše Re: PHP: Regulární výraz a diakritika v UTF-8
    preg_match("/^\p{L}*$/", "příšera");
    9.6.2009 17:40 N0rT0n | skóre: 9 | blog: Lama | Brno
    Rozbalit Rozbalit vše Re: PHP: Regulární výraz a diakritika v UTF-8

    Díky za reakce,

    ten nápad s iconv mě taky napadl. Leč jsem si stále myslel, že mě napadne něco elegantního. V tom skriptu se jedná o ošetření vkládání klíčových slov. Pravidla jsou taková, že mohou začínat libovolným písmenem, mohou obsahovat číslici, od sebe jsou odděleny čárkou (či případně čárkou a mezerou) a musí končit slovem. Žádné jiné znaky nejsou povoleny, takže nelze použít třídu [[:alpha:]]. Vše až na to ošetření konce slova jsem už zvládl.

    Správně by se měl vyhodnotit tento řetězec (i s vloženou frází "sportovní náčiní"):

    činka, sportovní náčiní, číslo21, google
    

    chybně by se měl vyhodnotit řetězec obsahující například:

    činka, sportovní náčiní, 21. století, google,

    (slovo nesmí začínat číslicí, tečka není přípustná a řetězec nesmí končit žádným jiným znakem, než [a-zA-Z0-9]). Něco jako

    ^[a-zA-Z0-9]*(,| )*[a-zA-Z0-9]*$
    
    9.6.2009 19:16 N0rT0n | skóre: 9 | blog: Lama | Brno
    Rozbalit Rozbalit vše Re: PHP: Regulární výraz a diakritika v UTF-8

    Moc elegantní to není, ale snad by to mohlo pomoci někomu, kdo podobný problém řeší:

    $foo = iconv('utf-8', 'ASCII//IGNORE', $text);
    if(ereg('^([a-zA-Z]{1,}[0-9]*(,| ){0,1})*[a-zA-Z]{1,}[0-9]*$',$foo)) {

      $result=1;

    } else { $result=0; }

    /*

    1) do proměnné $foo se překóduje text z proměnné $text, která je kódována v UTF-8, proměnná $foo je nyní reprezentována v kódování ASCII s tím, že znaky, které nemohly být zkonvertovány do ASCII "tiše" zmizí (zajišťuje příznak //IGNORE)

    2) klíčová slova musí začínat písmenem a případně končit číslicí, mezi slovy je přípustná čárka (oddělovač klíčových slov) nebo mezera (oddělovač slov v slovní frázi). Celý regulární výraz musí končit slovem (případně slovem s číslicí na konci).

    */

     Vypadá to, že to funguje, že jsem neudělal chybu (po 11 hodinách v práci by mě to ani nepřekvapilo).

     

    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.