IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Un chiffre dans l'expression rationnelle


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 083
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 083
    Par défaut Un chiffre dans l'expression rationnelle
    Bonjour,
    Je veux tester les chaines de caractères et trouver celles qui ne comportent qu'un seul chiffre.

    J'ai vue:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     Match all lines that contain a single digit. g. “8”
     
        Pattern: ‘^[0-9]$’
    donc j'essaie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for i in jhy2kk hh3hyt sdrhty
    do
    echo $i | grep '^[0-9]$'
     
      done
    Il renvoie rien.
    Où est mon erreur?
    D'avance merci.

  2. #2
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Par défaut
    Ton expression régulière exprime, une ligne qui n'est qu'un chiffre

    ^ debut de ligne
    $ fin de ligne
    [0-9] un chiffre

  3. #3
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 350
    Par défaut
    Comment lis-tu ton expression : ^[0-9]$ ?

    Et comment lis-tu celle-ci: ^[^0-9]*[0-9][^0-9]*$ ?

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 083
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 083
    Par défaut
    Bonjour,
    Et merci pour vous réponse.
    Il fallait donc comprendre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    that contain "only" a single digit.
    @disedorgue:

    Difficile pour moi à comprendre ton expression:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "^[^0-9]*[0-9][^0-9]*$"
    Que veut dire [^0-9]? Pour quoi deux fois avec "^" et une fois sans? Pour quoi trois fois 0-9 ?

    Pour quoi "*"?
    Le doc dit:
    https://docs.oracle.com/cd/B12037_01...p_posix001.htm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    *
    	Matches zero or more occurrences
    C'est varie qu'il marche et je t'en remercie et j'aime comprendre.

    Cordialement.

  5. #5
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Par défaut
    Citation Envoyé par big1 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "^[^0-9]*[0-9][^0-9]*$"
    L'utilisation du ^ a deux signification en fonction de l'endroit ou on le trouve, c'est parfaitement perturbant

    ^ : debut de ligne
    $ : fin de ligne
    [^...] : Qui n'est pas
    * : répété 0 ou plusieurs fois le caractère précédent. Celui la aussi est très perturbant car il ne se comporte pas tout à fait comme un caractère joker habituel.


    Ce qui nous donne :

    A partir du début de ligne ( ^ ), un NON-chiffre ( [^0-9] ) répété 0 ou plusieurs fois (*) suivi d'un chiffre ( [0-9] ), terminant par une série de non-chiffre ( [^0-9]* ) jusqu'a la fin de la ligne $

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 083
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 083
    Par défaut
    Merci Frédéric pour l'explication.

    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegExp] Le OU dans les expressions rationnelles
    Par comode dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/08/2017, 08h26
  2. [XL-2007] [RegExp]Mettre une negation dans une Expression Rationnelle
    Par EvaristeGaloisBis dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/08/2013, 18h34
  3. Expression rationnelle dans SELECT
    Par senacle dans le forum Requêtes
    Réponses: 9
    Dernier message: 19/12/2008, 15h02
  4. Réponses: 19
    Dernier message: 03/10/2007, 09h14
  5. Réponses: 7
    Dernier message: 02/04/2004, 10h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo