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 02:00 | Nová verze

Byl vydán Debian 9.1, tj. první opravná verze Debianu 9 s kódovým názvem Stretch a Debian 8.9, tj. devátá opravná verze Debianu 8 s kódovým názvem Jessie. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 9 a Debianu 8 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.

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

Nadace The Document Foundation (TDF) zastřešující vývoj svobodného kancelářského balíku LibreOffice zveřejnila čtyřiačtyřicetistránkovou výroční zprávu za rok 2016. K dispozici je ve formátu pdf ve vysokém (21,68 MB) a nízkém (7,1 MB) rozlišení. Zpráva byla vytvořena ve Scribusu.

Ladislav Hagara | Komentářů: 0
včera 14:40 | Zajímavý software

Mozilla.cz informuje, že Firefox Focus pro Android, velmi jednoduchý prohlížeč zaměřený na anonymní prohlížení, dosáhl milionu stažení. Firefox Focus blokuje sledující prvky a reklamy a při ukončení automaticky smaže všechna uložená data stránek, historii prohlížení a cookies.

Ladislav Hagara | Komentářů: 2
včera 14:20 | Komunita

Vyplněním dotazníku na Formuláře Google lze ovlivnit výběr výchozích aplikací v Ubuntu 18.04 LTS. Podrobnosti v příspěvku Dustina Kirklanda na Ubuntu Insights [reddit].

Ladislav Hagara | Komentářů: 1
21.7. 11:30 | Komunita

Etherpad (Wikipedie), svobodný online webový textový editor umožnující spolupráci v reálném čase, se stal oficiálním projektem organizace Software Freedom Conservancy (Wikipedie). Vývojáři Etherpadu se tak mohou stejně jako vývojáři dalších projektů soustředit pouze na vývoj softwaru a vše kolem zařídí Software Freedom Conservancy. Spuštěna byla instance Etherpadu pad.sfconservancy.org.

Ladislav Hagara | Komentářů: 2
21.7. 10:40 | Zajímavý článek

Lukáš Růžička se v článku Workrave ve Fedoře aneb jak si nevytunelovat karpál na MojeFedora.cz věnuje aplikaci Workrave (Wikipedie) na sledování času stráveného na počítači, která může pomoci vyhnout se negativním účinkům práce s počítačem (RSI, CTS), nebo je alespoň výrazně zmírnit.

Ladislav Hagara | Komentářů: 1
21.7. 10:00 | Komunita

Na Humble Bundle lze získat počítačovou hru Shadow Warrior: Special Edition běžící také v Linuxu zdarma. Speciální akce končí v sobotu v 19:00.

Ladislav Hagara | Komentářů: 2
20.7. 23:11 | Nová verze

Byla vydána verze 2.4.0 analyzátoru síťového provozu Wireshark. Jedná se o první stabilní verzi nové řady 2.4. Podrobný přehled novinek v poznámkách k vydání. V červnu proběhla konference SharkFest’17 US věnovaná Wiresharku. Záznamy přednášek jsou k dispozici na YouTube.

Ladislav Hagara | Komentářů: 1
20.7. 13:11 | Pozvánky

Spolek OpenAlt zve příznivce otevřeného přístupu na 142. brněnský sraz, který proběhne v pátek 21. července od 18:00 hodin ve Sport Centru Srbská (Srbská 4). Od 19:00 je pro zájemce zamluveno hřiště na plážový volejbal.

Ladislav Hagara | Komentářů: 0
20.7. 12:34 | Bezpečnostní upozornění

V GNOME Soubory, původně Nautilus, konkrétně v generování náhledů exe, msi, dll a lnk souborů byla nalezena a opravena bezpečnostní chyba CVE-2017-11421 s názvem Bad Taste. Při otevření složky obsahující tyto soubory může být spuštěn VBScript obsažen v názvech těchto souborů.

Ladislav Hagara | Komentářů: 3
Těžíte nějakou kryptoměnu?
 (3%)
 (0%)
 (17%)
 (80%)
Celkem 30 hlasů
 Komentářů: 0
    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: 4015×

    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.