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

    Střílečku Borderlands 2 lze v rámci výprodeje série Borderlands na Steamu získat zdarma napořád, když aktivaci provedete do 8. června 19:00.

    Ladislav Hagara | Komentářů: 0
    dnes 15:11 | Nová verze

    Byla vydána nová verze 2.22 svobodného video editoru Flowblade (GitHub, Wikipedie). Přehled novinek v poznámkách k vydání. Videoukázky funkcí Flowblade na Vimeu. Instalovat lze také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    včera 15:00 | Komunita

    Canonical Launchpad vypíná systém správy verzí Bazaar. Vývojáři mohou své repozitáře do 1. září přemigrovat na Git.

    Ladislav Hagara | Komentářů: 4
    včera 13:22 | Nová verze

    Byla vydána nová verze 2.53.21 svobodného multiplatformního balíku internetových aplikací SeaMonkey (Wikipedie). Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 3
    včera 12:33 | Komunita Ladislav Hagara | Komentářů: 14
    včera 11:22 | Komunita

    Na Indiegogo byla spuštěna kampaň na podporu linuxového telefonu Liberux NEXX s osmijádrovým procesorem Rockchip RK3588S, 32 GB LPDDR4x RAM a 6.34″ 2400×1080 OLED displejem. Cena telefonu je 1 310 eur.

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

    Miro Hrončok vyhrál volby do Fedora Council. Mezi sedmi kandidáty, kteří se ucházeli o dvě křesla, nakonec získal nejvíce hlasů - 1089. Česká komunita má tak po delší době opět zástupce v nejvyšším orgánu Fedory.

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

    Redox OS (Wikipedie), tj. mikrokernelový unixový operační systém naprogramovaný v programovacím jazyce Rust, nově podporuje X11 a GTK 3.

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

    Dnes po celém světě startuje prodej herní konzole Nintendo Switch 2.

    Ladislav Hagara | Komentářů: 7
    4.6. 14:33 | Zajímavý článek

    Stovky Indů předstíraly, že jsou neuronová síť. Vzestup a pád Builder.ai.

    Ladislav Hagara | Komentářů: 10
    Jaký je váš oblíbený skriptovací jazyk?
     (55%)
     (33%)
     (7%)
     (2%)
     (0%)
     (0%)
     (3%)
    Celkem 209 hlasů
     Komentářů: 14, poslední 2.6. 08:30
    Rozcestník

    Dotaz: Perl: problém s češtinou v regexpu

    13.4.2008 22:23 Herry
    Perl: problém s češtinou v regexpu
    Přečteno: 2015×
    Dobrý den,
    mám problém s češtinou v regulárních výrazech,
    /\w/ "nesežere" některé znaky s diakritikou v kódování UTF8.

    Příklad:

    #!/usr/bin/perl -w
    
    use utf8;
    use locale;
    use encoding 'utf-8';
    
    binmode STDOUT, ":utf8";
    binmode STDERR, ":utf8";
    
    print "ě>$1<\n" if "ě" =~ /(\w)/;
    print "š>$1<\n" if "š" =~ /(\w)/;
    print "č>$1<\n" if "č" =~ /(\w)/;
    print "ř>$1<\n" if "ř" =~ /(\w)/;
    print "ž>$1<\n" if "ž" =~ /(\w)/;
    print "ý>$1<\n" if "ý" =~ /(\w)/;
    print "á>$1<\n" if "á" =~ /(\w)/;
    print "í>$1<\n" if "í" =~ /(\w)/;
    print "é>$1<\n" if "é" =~ /(\w)/;
    

    Výraz /(\w)/ projde jenom pro ě,š,č,ř,ž

    locales mám nastaveno na:

    LANG=cs_CZ.UTF-8
    LC_CTYPE="cs_CZ.UTF-8"
    LC_NUMERIC="cs_CZ.UTF-8"
    LC_TIME="cs_CZ.UTF-8"
    LC_COLLATE="cs_CZ.UTF-8"
    LC_MONETARY="cs_CZ.UTF-8"
    LC_MESSAGES="cs_CZ.UTF-8"
    LC_PAPER="cs_CZ.UTF-8"
    LC_NAME="cs_CZ.UTF-8"
    LC_ADDRESS="cs_CZ.UTF-8"
    LC_TELEPHONE="cs_CZ.UTF-8"
    LC_MEASUREMENT="cs_CZ.UTF-8"
    LC_IDENTIFICATION="cs_CZ.UTF-8"
    LC_ALL=
    

    Někde jsem našel řešení něco jako /(\p{L})/, ale nikde jsem se nedočetl co to přesně znamená a proč to původní řešení nefunguje přestože je to uvedeno v mnoha návodech.

    Díky za odpovědi

    Odpovědi

    13.4.2008 23:06 Hery
    Rozbalit Rozbalit vše Dodatek

    /(\p{L})/ nespolkne číslice, potřeboval bych něco na alfanumerický znaky.

    osladil avatar 14.4.2008 08:49 osladil | skóre: 12
    Rozbalit Rozbalit vše Re: Perl: problém s češtinou v regexpu
    Ahoj, v jenom skriptu pouzivam neco podobneho. Zkousel jsem to ted na tomhle:
    #!/usr/bin/perl
    
    use strict;
    use warnings;
    use utf8;
    
    binmode STDIN, ":utf8";
    binmode STDOUT, ":utf8";
    
    my $string = "Čeština je ČESKÁ";
    $string =~ /(\w+)/;
    my ($result) = ($1);
    
    print "Hledam v $string\n";
    print "Nalezeno $result\n";
    
    print "Čeština je cool!\n" if $result eq "Čeština";
    
    Moje locales:
    mira@batman:~$ env|grep LANG
    LANG=en_US.UTF-8
    
    zoul avatar 14.4.2008 09:19 zoul | skóre: 43 | blog: | Boskovice
    Rozbalit Rozbalit vše Re: Perl: problém s češtinou v regexpu
    Mně to funguje:
    perl -e "use locale; print 'Yep' if ('ý' =~ /\w/)"
    Yep
    OS X 10.5.2, Perl 5.8.8, locale en_US.UTF-8. Možná zkus nastavit ještě LC_ALL?
    20.9.2008 17:22 harry
    Rozbalit Rozbalit vše Re: Perl: problém s češtinou v regexpu
    RESENI

    doinstaloval jsem nejaky baliky, uz nevim ktery presne zabral:

    language-pack-cs
    language-gnome-cs
    language-support-cs
    language-translate-cs

    reinstaloval jsem locale

    sudo apt-get install --reinstall locales

    a potom to zaclo fungovat:

    LC_ALL=en_US.UTF-8 perl -C -Mutf8 -e '$_="aábcčdďeěéfghiíjklmnňoópqrřsštťuúůvwxyýzž"; s/\W/-/g; print $_, "\n"'

    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.