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 :

Expression régulière représentant une chaine en paramètre d'une fonction


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2010
    Messages : 434
    Par défaut Expression régulière représentant une chaine en paramètre d'une fonction
    Bonjour à tous,

    J'ai une fonction qui permet de tester deux fichiers texte avec comme paramètres les fichiers. Je peux également surcharger cette fonction en rajoutant un paramètre qui permet de ne pas prendre en compte une ligne.

    En effet ce paramètre sera une chaine de caractères et lors de la comparaison on ne prendra pas en compte dans les fichiers les lignes commançant par cette chaine.

    Cette chaine et de la forme "[espace(s)]table:"

    Le problème c'est que je ne connais pas le nombre d'espaces. Il peut y en avoir 0 ou plusieurs.

    Voici ma fonction. Il s'agit donc du 3eme paramètre qui me pose problème. Je sais qu'il faut utiliser les expressions régulières mais j'ai testé plusieures choses sans succès.

    compareTextFiles(new File("fichier.txt","fichier2.txt"," table:");
    Si vous avez des idées je suis preneur. Merci de votre aide

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 253
    Par défaut
    L'utilisation d'une expression régulière est une bonne (LA) solution.
    Pour trouver les chaines qui commencent par des espaces (voire aucun) tu peux utiliser celle là:

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2010
    Messages : 434
    Par défaut
    Merci de t'interessais à mon cas

    J'ai déjà essayé de faire ce que tu me propose, ça ne marche pas. Enfin en fait j'ai cette erreur :

    Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ )

    En tout cas merci de ton aide

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    En mettant le pattern dans une String, ça donne ça :

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2010
    Messages : 434
    Par défaut
    Qu'entends tu par : "En mettant le pattern dans une String" ?

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    il y a les règles sur les pattern, qui disent qu'un espace c'est \s

    mais il y a aussi les règle générale du language java et du compilateur qui disent que les caractère \ " notamment, doivent être échappés pour que le compilateur les comprennent.

    Ainsi, en java, si je veux afficher le smiley
    \o/

    je dois écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println("\\o/");
    pour la même raison, pour construire la regexp ^\s*table:, je dois écrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String regexp = "^\\s*table:";
    ce qui, accessoirement, rend vite les regexp dans le code imbuvables à force de devoir doubler tous les \

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/08/2013, 14h38
  2. passage d'une chaine de paramètres à une fonction
    Par unmulot dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 01/10/2010, 18h20
  3. Expressions régulières - Longueur de chaines.
    Par caddy dans le forum Général Java
    Réponses: 3
    Dernier message: 28/12/2009, 15h31
  4. expression regulières supprimer les doublons de caratéres dans une chaine
    Par karimphp dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/12/2007, 14h26
  5. [Expression régulière] Début de chaine
    Par navis84 dans le forum Oracle
    Réponses: 8
    Dernier message: 10/10/2006, 13h52

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