begin process at 2010 02 10 13:25:45
  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...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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 : 0,983 sec (4)

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