Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 24/03/2021, à 15:56

ar barzh paour

classe de caractères alpha

Bonjour
je ne sais pas trop dans quelle rubrique poster

 alnum   alpha   ascii   blank   cntrl   digit   graph   lower
print   punct   space   upper   word    xdigit

je cherche à quoi correspond exactement ces class
qui renvoient vers POSIX standard , mais je n'arrive pas à y trouver une réponse

Within ‘[’ and ‘]’, character classes can be specified using the syntax [:class:], where class is one of the following classes defined in the POSIX standard:

bêtement par exemple
[:alpha:]  "n'importe quelle lettre"
je pensais que c'était équivalent à - [A-Za-z]
mais il semble bien que non d'après ce qui suit
dans un terminal

function cas_particuliers {
case "$1" in
    [[:alpha:]] ) echo "alpha "  ;;  # a-z A-Z
    [[:digit:]] ) echo "digit "  ;;  # 0-9
    [[:punct:]] ) echo "punct "  ;;  # [!-/  :-@  [-`  {-~]
    [[:space:]] ) echo "space "  ;;  # [ \t\v\f]    
    *    ) echo "NT" ;;
esac    
return
}
echo -n "$(cas_particuliers "é")"
alpha

é me renvoie alpha , ce qui semble bien indiquer que "é" est dans alpha

avez-vous une réponse à me fournir?

Dernière modification par ar barzh paour (Le 18/02/2022, à 21:12)


PC          : B760M DS3H DDR4,  12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 22.04, 22.04, 23.04
Portable1 : Intel(R) Core(TM)2 Duo CPU     T6570  @ 2.10GHz RAM 4GiB DDR2 667 MHz Ubuntu 23.04 ( en voyage )
Portable2 : T5750  @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )

Hors ligne

#2 Le 24/03/2021, à 16:05

kamaris

Re : classe de caractères alpha

Ça dépend de la locale :

$ export LC_ALL=C
$ echo -n "$(cas_particuliers "é")"
NT

Hors ligne

#3 Le 24/03/2021, à 17:04

ar barzh paour

Re : classe de caractères alpha

ok

jpb@U20-04-e3:~$ locale
LANG=fr_FR.UTF-8
LANGUAGE=
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL=
jpb@U20-04-e3:~$ 

je n'ai rien dans LC_ALL
c'est ce qui fait que é fait partie de alpha ?
je vais essayer de fouiller

Dernière modification par ar barzh paour (Le 24/03/2021, à 17:04)


PC          : B760M DS3H DDR4,  12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 22.04, 22.04, 23.04
Portable1 : Intel(R) Core(TM)2 Duo CPU     T6570  @ 2.10GHz RAM 4GiB DDR2 667 MHz Ubuntu 23.04 ( en voyage )
Portable2 : T5750  @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )

Hors ligne

#4 Le 24/03/2021, à 17:10

kamaris

Re : classe de caractères alpha

LC_ALL n'est pas définie par défaut, si tu la renseignes elle donne sa valeur à toutes les variables LC_* qui précèdent, d'où son nom.
En l'occurrence, la variable d'intérêt est LANG, sur laquelle LC_ALL a priorité si je me souviens bien, alors même que LANG apparait toujours en français dans le retour de la commande locale après export de LC_ALL.
En français, « é » est un caractère de la classe de « e » et donc de la classe « alpha », pas en anglais (qui correspond à C, la langue système par défaut).

Dernière modification par kamaris (Le 24/03/2021, à 17:33)

Hors ligne

#5 Le 24/03/2021, à 17:33

MicP

Re : classe de caractères alpha

Bonjour

Quelques liens :

https://unicode-org.github.io/icu/userg … er-classes

https://pubs.opengroup.org/onlinepubs/9 … hap09.html

EDIT : correction du premier lien cité dans ce message.

Dernière modification par MicP (Le 27/03/2021, à 15:05)

Hors ligne

#6 Le 27/03/2021, à 14:41

ar barzh paour

Re : classe de caractères alpha

@MicP
merci pour les liens , j'ai de la lecture !!!!!!
le premier doit être celui-ci en fait
https://unicode-org.github.io/icu/userg … er-classes

Dernière modification par ar barzh paour (Le 27/03/2021, à 14:43)


PC          : B760M DS3H DDR4,  12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 22.04, 22.04, 23.04
Portable1 : Intel(R) Core(TM)2 Duo CPU     T6570  @ 2.10GHz RAM 4GiB DDR2 667 MHz Ubuntu 23.04 ( en voyage )
Portable2 : T5750  @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )

Hors ligne

#7 Le 27/03/2021, à 15:03

MicP

Re : classe de caractères alpha

…le premier doit être celui-ci en fait
https://unicode-org.github.io/icu/userg … er-classes

Oui, c'est ça. Bien vu smile

Je corrige le lien dans mon précédent message.

Merci.

Dernière modification par MicP (Le 27/03/2021, à 15:03)

Hors ligne

#8 Le 28/03/2021, à 12:02

LeoMajor

Re : classe de caractères alpha

bonjour,

:~$ sed -r 's/[[=e=]]|[[=o=]]/?/g'<<<"Ô Être évêque à l'île de Tahïti"
? ?tr? ?v?qu? à l'îl? d? Tahïti
:~$ a="ça alors ?!"; [[ "$a" =~ [[=c=]] ]] && echo "c/C et ses diacritiques"
c/C et ses diacritiques
:~$ sed -r 's/[[='$'\u0153''=]]|[[=a=]]/?/g'<<<"L'Œuf de Pâques"
L'?uf de P?ques
:~$ printf "\u0152\u0153\n"
Œœ

Hors ligne

#9 Le 10/10/2021, à 06:45

ar barzh paour

Re : classe de caractères alpha

@MicP
la documentation est complète
mais après quelques heures de lecture , je reste sur ma faim , cela dépasse mes compétences ...
plus simplement je vais me faire un batch qui me dira dans quel catégorie se classe un caractère ... sur mon PC perso
batch en cours de réalisation .... d'ici la fin de l'année sans doute

@LeoMajor , d'après les posts précédents le résultat dépend des variables LC_xxxx

sed -r 's/[[=e=]]|[[=o=]]/?/g'<<<"Ô Être évêque à l'île de Tahïti"
Ô Êtr? évêqu? à l'îl? d? Tahïti

Dernière modification par ar barzh paour (Le 04/11/2021, à 14:28)


PC          : B760M DS3H DDR4,  12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 22.04, 22.04, 23.04
Portable1 : Intel(R) Core(TM)2 Duo CPU     T6570  @ 2.10GHz RAM 4GiB DDR2 667 MHz Ubuntu 23.04 ( en voyage )
Portable2 : T5750  @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )

Hors ligne

#10 Le 10/10/2021, à 07:14

ar barzh paour

Re : classe de caractères alpha

function test_car {
case "$1" in
    [[:upper:]]  )  echo "upper"  ;;&
    [[:lower:]]  )  echo "lower"  ;;&
    [[:alpha:]]  )  echo "alpha"  ;;&  
    [[:digit:]]  )  echo "digit"  ;;&  # 0-9
    [[:punct:]]  )  echo "punct"  ;;&  # [!-/  :-@  [-`  {-~]
    [[:space:]]  )  echo "space"  ;;&  # [ \t\v\f]
    [[:cntrl:]]  )  echo "cntrl"  ;;&
    [[:graph:]]  )  echo "graph"  ;;&
    [[:print:]]  )  echo "print"  ;;&
    [[:xdigit:]] )  echo "xdigit" ;;&    
    [[:blank:]]  )  echo "blank"  ;;&
    *    ) echo "$1" ;;
esac    
return
}

## utilisation

echo -n "$(test_car "é")"
lower
alpha
graph
print
é

PC          : B760M DS3H DDR4,  12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 22.04, 22.04, 23.04
Portable1 : Intel(R) Core(TM)2 Duo CPU     T6570  @ 2.10GHz RAM 4GiB DDR2 667 MHz Ubuntu 23.04 ( en voyage )
Portable2 : T5750  @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )

Hors ligne