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

Collection et Stream Java Discussion :

Probleme d'Expression reguliere


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 80
    Par défaut Probleme d'Expression reguliere
    Salut a tous,

    Je dispose d une expression reguliere, et je desire la modifier, malheureusement, je n arrive pas a trouver la bonne solution :

    [[\w][\p{Punct}&&[^,]][áéíóúÁÉÍÓÚñÑüÜ][\s]]

    Je voudrais y ajouter l'interdiction de certains caracteres comme $ % & ñ
    par exemple.

    J'ai meme peur de ne pas vraiment comprendre l expression :
    Puisque quand je teste la virgule passe.

    Savez vous comment la modifier?
    D avance, MErci !
    Xoco

  2. #2
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 690
    Par défaut
    En effet tes "&" sont suspects. Ils doivent correspondre en fait à des "&". Je suppose que ton problème de virgule vient de là.

    Si tu veux en plus interdire $,%,& et ñ il te faudrait:
    [[\w][\p{Punct}&&[^,]][áéíóúÁÉÍÓÚñÑüÜ][\s]&&[^$%&ñ]]

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 80
    Par défaut
    Merci pour ta reponse !
    Mais ...Ca n'as pas marché...
    Le truc des & ,c que cette expression reguliere est dans un XML qui est parsé comme ci dessous, je ne suis pas rentré dans le detail du process, mais il marche.
    Par contre, je n ai pas reussi a interdire les caracteres.
    Peux tu me dire si je me trompe.

    La regex decrit une union d ensemble [][][] qui est un mot ([\w])
    ou je peux avoir les caracteres áéíóúÁÉÍÓÚñÑüÜ et un espace blanc ([\s]).
    et la virgule, dans tout ca, je ne sais pas ce qu elle fait.
    Mais pour moi, tout ca n a pas de sens, car un mot est censé ne pas avoir d espace. En gros, je n y comprends pas grand chose, arriverais tu a m expliquer le sens de cette expression ?



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <layout-registro clase="com.sodexho.app.value.ClsVOTarjetaPedido">
                <campo propiedadVO="mstrSucursal">
                    <nombre>SUCURSAL</nombre>
                    <regex>[[\w][\p{Punct}&amp;&amp;[^,]][áéíóúÁÉÍÓÚñÑüÜ][\s]&amp;&amp;[^$%ñ]]</regex>
                    <longitud>{1,5}?</longitud>
                </campo>
                <campo propiedadVO="mstrDepartamento">
                    <nombre>DEPARTAMENTO</nombre>
                    <regex>[[\w][\p{Punct}&amp;&amp;[^,]][áéíóúÁÉÍÓÚñÑüÜ][\s]]</regex>
                    <longitud>{1,5}?</longitud>
                </campo>
    Merci !
    Xoco

  4. #4
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 690
    Par défaut
    vocabulaire de base:
    \w : comprend les lettres simples de a à z en minuscules et majuscules ainsi que les chiffres.
    \p{Punct} : comprend les caractères de ponctuation comme ,.:;?!#&'%" entre autre
    \s : comprend les caractères d'espacement comme les espaces, tabulations et retour à la ligne.

    entre les crochet les differents caractères acceptés s'ajoutent par contre l'expression &&[^...] signifie "à l'exclusion de".

    En relisant mon expresion elle est en fait inutilement compliqué il te suffirait de faire :[áéíóúÁÉÍÓÚüÜ\s\w\p{Punct}&&[^,$&%]].
    J'ai enlevé les crochet séparant les groupes car ils n'étaient pas nécessaires. Mais tu peux les remettre si tu trouves plus lisible.

    On accepte donc ici :
    • tout une série de lettre accentuées autorisés à laquelle j'ai retiré le n avec tilde
    • les espaces
    • les lettres simples et les chiffres
    • les caractères de ponctuation
    Par contre on refuse catégoriquement:
    • les cactères , $ & et %

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 80
    Par défaut
    T trop fort Uther,
    c exactement ce dont j'ai besoin,
    Ca fonctionne tres bien, je comprends un peu de regex par la pratique.
    Merci !

Discussions similaires

  1. probleme avec expression reguliere
    Par naourass dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 09/11/2005, 12h15
  2. [langage]Probleme d'expression reguliere
    Par Slippers dans le forum Langage
    Réponses: 2
    Dernier message: 29/06/2005, 17h45
  3. Réponses: 7
    Dernier message: 16/07/2004, 13h24
  4. [langage] Problème d'expression régulière
    Par xavro dans le forum Langage
    Réponses: 11
    Dernier message: 13/07/2004, 14h48
  5. [langage] Problème d'expression régulière
    Par And_the_problem_is dans le forum Langage
    Réponses: 7
    Dernier message: 22/03/2004, 15h03

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