Pages : 1
#1 Le 24/03/2021, à 14: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, à 20:12)
PC : B760M DS3H DDR4, 12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 20.04, 22.04, 24.04 (en test )
Portable1 : ThinkPad P50 I7-6820HQ, 16G0 Ram Ubuntu 22.04 Ubuntu 24.04 , W10-PRO( 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, à 15: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, à 16: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, à 16:04)
PC : B760M DS3H DDR4, 12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 20.04, 22.04, 24.04 (en test )
Portable1 : ThinkPad P50 I7-6820HQ, 16G0 Ram Ubuntu 22.04 Ubuntu 24.04 , W10-PRO( 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, à 16: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, à 16:33)
Hors ligne
#5 Le 24/03/2021, à 16: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, à 14:05)
Hors ligne
#6 Le 27/03/2021, à 13: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, à 13:43)
PC : B760M DS3H DDR4, 12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 20.04, 22.04, 24.04 (en test )
Portable1 : ThinkPad P50 I7-6820HQ, 16G0 Ram Ubuntu 22.04 Ubuntu 24.04 , W10-PRO( 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, à 14: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
Je corrige le lien dans mon précédent message.
Merci.
Dernière modification par MicP (Le 27/03/2021, à 14:03)
Hors ligne
#8 Le 28/03/2021, à 11: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, à 05: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, à 13:28)
PC : B760M DS3H DDR4, 12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 20.04, 22.04, 24.04 (en test )
Portable1 : ThinkPad P50 I7-6820HQ, 16G0 Ram Ubuntu 22.04 Ubuntu 24.04 , W10-PRO( 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, à 06: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 20.04, 22.04, 24.04 (en test )
Portable1 : ThinkPad P50 I7-6820HQ, 16G0 Ram Ubuntu 22.04 Ubuntu 24.04 , W10-PRO( 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