begin process at 2010 03 21 04:54:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Divers

 > 

Débutant(e)

 > 

Regex


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Regex

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ée 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...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,466 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales