Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Regex [ Divers / Débutant(e) ] (lnp)

vendredi 30 juin 2006 à 10:48:25 | Regex

lnp

Membre Club
Salutà tous,

J'ai un fichier CSV structurer ainsi : "Titre","Prénom","Nom"... Et le problème est que chaque champ est compris entre guillements ?

Voilà ce que j'ai écrit pour récupérer chaque champ :


-_-_-_-_-_-_-_

/*
 * Créé le 29 juin 2006
 *
 * TODO Pour changer le modèle de ce fichier généré, allez à :
 * Fenêtre - Préférences - Java - Style de code - Modèles de code
 */
package tests;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author mpayet
 *
 * TODO Pour changer le modèle de ce commentaire de type généré, allez à :
 * Fenêtre - Préférences - Java - Style de code - Modèles de code
 */
public class Test1 {

    public static void main(String[] args) {

        try {

            BufferedReader lecteurAvecBuffer = null;
            String ligne;

            try {
                lecteurAvecBuffer = new BufferedReader(new FileReader(new File(
                        "C:" + File.separator + "contacts.CSV")));
                System.out.println("Fichier ouvert");
            } catch (FileNotFoundException exc) {
                System.out.println("Erreur d'ouverture");
            }

            while ((ligne = lecteurAvecBuffer.readLine()) != null) {
                System.out.println(ligne);

                Matcher matcher = Pattern.compile("\"[' -_a-zA-Z]*\"").matcher(
                        ligne);

                /*
                 * C'est SUPER important d'utiliser FIND c'est un peu comme un
                 * iterator
                 */
                String civilite;
                String prenom;
                String nom;
                /* Récupérer la civilité */
                if (matcher.find()) {
                    civilite = matcher.group(0);
                    System.out.print(" civilité " + civilite);

                    civilite = Pattern.compile("[^a-zA-Z]").matcher(civilite)
                            .replaceAll("");
                    System.out.print(" civilité " + civilite);
                }

                /* Récupérer le prenom */
                if (matcher.find()) {
                    prenom = matcher.group(0);
                    System.out.print(" prenom " + prenom);

                    prenom = Pattern.compile("[^-'_a-zA-Z]").matcher(prenom)
                            .replaceAll("");
                    System.out.print(" prenom " + prenom);
                }

                /* Récupérer le nom */
                if (matcher.find()) {
                    nom = matcher.group(0);
                    System.out.print(" nom " + nom);

                    nom = Pattern.compile("[^-'_a-zA-Z]").matcher(nom)
                            .replaceAll("");
                    System.out.print(" nom " + nom);
                }
                System.out.println();

            }

            lecteurAvecBuffer.close();

        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

-_-_-_-_-_-_-_-_-_-_

Ci dessous la sortie standart :


Fichier ouvert
"Titre","Prénom","Nom"
 civilité "Titre"," civilité Titre prenom ","Nom" prenom Nom

-_-_-_-_-_-_-_

Comment fait-on pour matcher une chaîne de caractères qui est comprise entre deux guillements ? Quoiqu'il y ait entre les deux guillemets...
Y a t-il en JAVA une méthode qui split en fontion d'un pattern ? Soit, existe t-il l'équivalant de ce code PERL : split /REGEX/, string;


Merci d'avance pour toutes ces réponses...

__

LNP...
pour vous...

vendredi 30 juin 2006 à 12:31:18 | Re : Regex

thenaoh

Salut !

Alors, de mémoire, je pense que ceci devrait marcher : Dans le package java.util.regex, il y a une magnifique classe nommée Pattern, que l'on peut utiliser comme suit :

import java.util.regex;
...
String laChaineAMatcher = ... ;
boolean estCeQueMaChaineMatche = Pattern.matches(expressionReguliere, laChaineAMatcher);

Pour le détail de l'expression régulière, y'a pas mal d'info dans la javadoc de la classe Pattern. Je te laisse regarder, c'est plutôt complet.

Voilo ! bon courage !

vendredi 30 juin 2006 à 16:15:44 | Re : Regex

valckar

Réponse acceptée !
Salut, la méthode split existe dans String.




Cette discussion est classé dans : java, system, out, prenom, matcher


Répondre à ce message

Sujets en rapport avec ce message

java et SAX parser xml [ par kungouf ] bonjour a tousj'utilise le parser SAX en java pour recuperer des donnees provenant d'un fichier xml, et mon probleme est le suivant:j'ai un plantage a Compatibilité MSVM et JAVA [ par EricW123 ] Bonjour,j'ai développé un applet java à partir de la SDK 1.5.0.C'est un client TCP/IP qui affiche des données que l'on lui envoie. L'application fonct Executer une commande linux depuis java [ par nicola2s ] Salut les gars, je voudrais executer une commande linux, depuis un prog java: j'ai utilisé Runtime et Process. Pour l'exemple g pris echo comme comman Debutant java sur netbeans 5.0 [ par sourrisseau ] Bonjour tout le monde !!!!  Je me lande dans Java a l'aide de la plate forme netbeans 5.0 . J'ai egalement acheté Java 2 pour le nuls et je me suis la acces refuse à la copie [ par nahzhir ] BonjourJe suis en train de crée une class qui copier et colle un fichier avec cette methode : public static<FONT siz Serveur echo [ par wariom ] Bonjour, Voila, je voudrais faire un serveur echo mais j'ai des problemes avec les ObjectInputStream et companie <img src="http://www.developpez.net/f JAVA ne sait pas faire d'addition [ par Philou1789 ] Au secours je ne m'en sors pas Java ne sais pas calculer ou quoi !!!Mon code double A = 84.4; double B = 53.2; double C = A + afficher base de donnée sql dans une Jtable [ par Snyve ] Bonjour à tous !Je suis un débutant en java. J'utilise Netbeans.J'ai créer un programme java qui récupère les informations d'une base de donnée et les Ecriture dans un fichier [ par Darklecon ] Darklecon


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version


HTC G1

Entre 449€ et 449€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,515 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.