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

avec Java Discussion :

String matches ("[a-zA-Z]*")


Sujet :

avec Java

  1. #1
    Membre régulier Avatar de Tora21
    Homme Profil pro
    Développeur("Java"); //Débutant
    Inscrit en
    Mai 2011
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur("Java"); //Débutant

    Informations forums :
    Inscription : Mai 2011
    Messages : 140
    Points : 116
    Points
    116
    Par défaut String matches ("[a-zA-Z]*")
    Salut à tous,
    Pour une appli je doit contrôler une String pour savoir si elle comporte des caractères autre que l'alphabet de "a" à "z" et de "A" à "Z", mais je souhaite désormais lui laissé la possibilité de contenir des espaces entres les mots.

    Ma question est simple, dans cette expression régulière peut-on rajouter les espaces acceptés? Et mon autre question est, peut-on contrôler où ces espaces sont, pour éviter qu'ils soient à l'arrière ou à l'avant?

    J'ai en données:
    \z Fin de la chaîne soumise
    \A Début de la chaîne soumise
    \s espace
    Ah ça y’est, j’viens de comprendre à quoi ça sert la canne. En fait ça sert à rien… Du coup ça nous renvoie à notre propre utilité : l’Homme face à l’Absurde !

    -Perceval-

  2. #2
    Nouveau membre du Club
    Inscrit en
    Juillet 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 38
    Points : 27
    Points
    27
    Par défaut
    J'ai pas fait de regexp depuis quelques temps, mais je me demande si celle-ci peut t'aider :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (\S*[a-zA-Z]*\S*)|(\S*([a-zA-Z]+\s*)*[a-zA-Z]+\S*)

  3. #3
    Membre actif Avatar de Mamypirate
    Homme Profil pro
    Samouraï
    Inscrit en
    Mai 2011
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Samouraï
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2011
    Messages : 108
    Points : 211
    Points
    211
    Par défaut
    J'ai essayé avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    \A[a-zA-Z]+(\s?[a-zA-Z]+)*\Z
    Par contre il ne peut pas y avoir 2 \s d'affilé !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    try {
    findSignature();
    } catch(InspirationNotFoundException e) {
    e.printStackTrace();
    }

  4. #4
    Membre régulier Avatar de Tora21
    Homme Profil pro
    Développeur("Java"); //Débutant
    Inscrit en
    Mai 2011
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur("Java"); //Débutant

    Informations forums :
    Inscription : Mai 2011
    Messages : 140
    Points : 116
    Points
    116
    Par défaut
    Comme ça elle ne fonctionnent pas, j'ai pas le temps de chercher maintenant la doc sur ces expressions régulières, mais demain je la sortirais parce que j'ai besoin de comprendre comment vous les avez fait.

    ce qu'elle doit faire:
    -accepter les espaces à l’intérieur du mot, refuser les espaces au début de la chaîne avant le premier caractère de mot, refuser les espace à la fin de la chaîne après le dernier caractère de mot.
    -accepter les lettre de l'alphabet courant, a-z et A-Z.
    Ah ça y’est, j’viens de comprendre à quoi ça sert la canne. En fait ça sert à rien… Du coup ça nous renvoie à notre propre utilité : l’Homme face à l’Absurde !

    -Perceval-

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "\\p{Alpha}([\\p{Alpha}\\s]*\\p{Alpha})?"
    Devrais faire l'affaire (mais ça ajoute la restriction "au moins 1 lettre)

  6. #6
    Membre régulier Avatar de Tora21
    Homme Profil pro
    Développeur("Java"); //Débutant
    Inscrit en
    Mai 2011
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur("Java"); //Débutant

    Informations forums :
    Inscription : Mai 2011
    Messages : 140
    Points : 116
    Points
    116
    Par défaut
    peux-tu expliquer svp?
    mais ça ajoute la restriction "au moins 1 lettre
    Vos expressions me turlupines j'ai beau traduire ce que je peux je comprend toujours rien à vos expressions.

    \p, \A,*\Z : Qu'est-ce que ça signifie ?
    {Alpha} : Qu'est-ce que Alpha, et pourquoi utiliser un quantificateur avec ?
    *, \S*, *\S*, \s*, *\Z : Comment fonctionne l'étoile ?
    ? : Je sais que ça remplace 1 caractère, mais comment s'utilise-t-il ?
    \s? : Est-ce que cela veut dire "remplace les espaces" ?
    Ah ça y’est, j’viens de comprendre à quoi ça sert la canne. En fait ça sert à rien… Du coup ça nous renvoie à notre propre utilité : l’Homme face à l’Absurde !

    -Perceval-

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    \p{Alpha} -> comme indiqué dans la javadoc, représente [a-zA-Z] C'est juste que je trouve ça plus clair.

    L'expression régulière dit

    Une lettre en première position
    Suivie éventuellement (quantifier "?") de
    O à N fois des lettres ou espace
    Une lettre (pour obliger à finir par une lettre comme demandé)

    Lisez la javadoc sur les expressions régulière, toutes les questions que vous avez posées y sont expliquées.

  8. #8
    Membre régulier Avatar de Tora21
    Homme Profil pro
    Développeur("Java"); //Débutant
    Inscrit en
    Mai 2011
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur("Java"); //Débutant

    Informations forums :
    Inscription : Mai 2011
    Messages : 140
    Points : 116
    Points
    116
    Par défaut
    Bon ben après des essais de vos propositions, aucune n'est efficace.
    Merci quand même.
    Ah ça y’est, j’viens de comprendre à quoi ça sert la canne. En fait ça sert à rien… Du coup ça nous renvoie à notre propre utilité : l’Homme face à l’Absurde !

    -Perceval-

  9. #9
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Etonnant, ca marche pourtant ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    		String regexp = "\\p{Alpha}([\\p{Alpha}\\s]*\\p{Alpha})?";
    		Pattern pattern = Pattern.compile(regexp);
    		String[] aTester = new String[] {" Bonjour le monde ", 
    				"Bonjour le monde",
    				" Bonjour le monde", 
    				"Bonjour le monde ",
    				"Bonjour", 
    				"Bonjour le monde!",
    				""};
    		for (String s : aTester) {
    			System.out.printf("'%s' -> %s\n", s , Boolean.toString(pattern.matcher(s).matches()));
    		}
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ' Bonjour le monde ' -> false
    'Bonjour le monde' -> true
    ' Bonjour le monde' -> false
    'Bonjour le monde ' -> false
    'Bonjour' -> true
    'Bonjour le monde!' -> false
    '' -> false

  10. #10
    Membre régulier Avatar de Tora21
    Homme Profil pro
    Développeur("Java"); //Débutant
    Inscrit en
    Mai 2011
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur("Java"); //Débutant

    Informations forums :
    Inscription : Mai 2011
    Messages : 140
    Points : 116
    Points
    116
    Par défaut
    ah
    j'ai donc du me louper quelque part, je go sur mon code et je vous re-dis ça.
    Ah ça y’est, j’viens de comprendre à quoi ça sert la canne. En fait ça sert à rien… Du coup ça nous renvoie à notre propre utilité : l’Homme face à l’Absurde !

    -Perceval-

  11. #11
    Membre régulier Avatar de Tora21
    Homme Profil pro
    Développeur("Java"); //Débutant
    Inscrit en
    Mai 2011
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur("Java"); //Débutant

    Informations forums :
    Inscription : Mai 2011
    Messages : 140
    Points : 116
    Points
    116
    Par défaut
    Ouai ben écoute je devais encore être bourré, merci Tchize, comme d'hab tes conseils sont très utiles.
    Ah ça y’est, j’viens de comprendre à quoi ça sert la canne. En fait ça sert à rien… Du coup ça nous renvoie à notre propre utilité : l’Homme face à l’Absurde !

    -Perceval-

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

Discussions similaires

  1. Passage d'un String PHP dans fonction javascript et quotes
    Par roukgreg dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/05/2013, 14h48
  2. [RegExp] string.match() difficile
    Par PaC_1250 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/05/2007, 13h24
  3. Type unit, type string, match with
    Par lioudow dans le forum Caml
    Réponses: 8
    Dernier message: 12/02/2007, 17h12
  4. [Regexp] String.matches
    Par scifire dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 21/11/2005, 17h25

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