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 21:44 | IT novinky

    Josef Průša představil (YouTube) novou 3D tiskárnu Original Prusa MK4. Cena sestavené tiskárny je 27990 Kč. Cena stavebnice je 20990 Kč.

    Ladislav Hagara | Komentářů: 0
    dnes 19:00 | Nová verze

    Turris OS, operační systém pro síťová zařízení Turris postavený na OpenWrt, byl vydán v nové verzi 6.3.0. Vývojáři upozorňují, že Netmetr byl nahrazen LibreSpeedem, viz příspěvek na blogu CZ.NIC.

    Ladislav Hagara | Komentářů: 0
    dnes 17:33 | Bezpečnostní upozornění

    Byl vydán xorg-server 21.1.8 a xwayland 22.1.9 a 23.1.1. Řešena je zranitelnost CVE-2023-1393 využitelná k lokální eskalaci práv.

    Ladislav Hagara | Komentářů: 1
    dnes 15:00 | Nová verze

    Byla vydána nová verze 10 integrovaného vývojového prostředí (IDE) Qt Creator. Podrobný přehled novinek v cgitu.

    Ladislav Hagara | Komentářů: 0
    včera 22:33 | Komunita

    Ubuntu Cinnamon bude od Ubuntu 23.04 oficiální odnoží Ubuntu (návrh, schválení).

    Ladislav Hagara | Komentářů: 3
    včera 19:22 | Nová verze

    Byla vydána nová major verze 5.0 účetního softwaru GnuCash (Wikipedie). Ve formátu Flatpak je již k dispozici na Flathubu.

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

    Na GOG.com běží Spring Sale. Při té příležitosti lze získat zdarma počítačovou hru Alwa's Awakening (ProtonDB).

    Ladislav Hagara | Komentářů: 1
    včera 16:55 | Nová verze

    Byla vydána verze 3.28.0 2D CAD (computer-aided design) softwaru QCAD (Wikipedie). Přehled novinek v Changelogu.

    Ladislav Hagara | Komentářů: 0
    včera 08:00 | IT novinky

    Změna ve vedení společnosti SUSE. Dosavadní CEO Melissa Di Donato odstoupila. Od 1. května je novým CEO Dirk-Peter van Leeuwen, bývalý Senior Vice President a General Manager ve společnosti Red Hat.

    Ladislav Hagara | Komentářů: 10
    27.3. 22:22 | Nová verze

    CyberChef je webová aplikace pro analýzu dat a jejich kódování a dekódování, šifrování a dešifrování, kompresi a dekompresi, atd. Často je využívaná při kybernetických cvičeních a CTF (Capture the Flag). Vydána byla nová major verze 10 (aktuálně 10.4.0). Přehled novinek v Changelogu.

    Ladislav Hagara | Komentářů: 0
    Používáte WSL (Windows Subsystem for Linux)?
     (73%)
     (12%)
     (4%)
     (11%)
    Celkem 366 hlasů
     Komentářů: 7, poslední včera 17:34
    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: 1960×
    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.