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 :

parser un texte


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 287
    Par défaut parser un texte
    Bonjour,

    je voudrais effectuer une recherche par mot-clés dans un texte.

    Existe-t-il une classe qui me permette d'effectuer cette recherche ?

  2. #2
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut
    Bah tu as la classe String qui possède quelques méthodes basiques comme indexOf(String str) qui te retourne la position du bout de texte str contenu dans ton texte, ou -1 si ton texte ne contient pas ce bout de texte. Je pourrais peut être t'aider d'avantage, mais tu es assez vague. Quelle genre de recherche veux tu faire ? Juste chercher une suite de lettre, des mots clés ?

    Merci pour des explications

  3. #3
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Qu'est-ce que tu entends par "recherche par mot-clé"?

    Si tu veux savoir si un texte contient un de tes mots clé, effectivement c'est "indexOf()" (ou alors "contains()" du package commons-lang de Jakarta qui offre des outils de manipulation des chaînes de caractères)

    Si tu veux faire autre chose de plus compliqué (compter le nombre d'apparitions d'un mot-clé dans ton texte pour calculer un score de correspondance par exemple), dis-le nous... ce n'est pas la même chose.
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  4. #4
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 287
    Par défaut
    merci pour vos réponses

    ce que je cherche à faire c'est déterminer si des mots (stockés dans un fichier appelé keywords.txt par exemple) apparaissent dans un texte.
    J'ai recherché et j'ai trouvé ça java.util.regex.*
    j'ai essayé d'écrire une petite boucle mais ça ne fonctionne pas ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    public void parseContent(String KeyWordsPath) {
    try {
     
    	BufferedReader keywords = new BufferedReader(
    		new FileReader(KeyWordsPath));
    	String line = "";
     
    	while((line = keywords.readLine()) != null) {
    		System.out.println("["+line+"]");
    		Pattern motif = Pattern.compile(line);
    		Matcher mot = motif.matcher(content);
    		boolean resultat = mot.matches();
    		String out = "Le motif ["+line+"]";
     
    		if(resultat)
    			out += " a été";
    		else
    			out += " n'a pas été";
    		out += " trouvé dans le texte";
     
    		System.out.println(out);
    	}
    }
    catch(FileNotFoundException exc) {
    	System.err.println("Erreur <ParseContent> : "+exc);
    }
    catch(IOException exc) {
    	System.err.println("Erreur <ParseContent> : "+exc);
    }
    La sortie du programme me renvoit qu'aucun des mots testé n'est dans le texte pourtant, cela devrait me renvoyer des résultats positifs !


    Je vais me renseigner sur les possibilités offertes par le package commons-lang de jakarta également

  5. #5
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    C'est normal... tu utilises mal les expressions régulières!

    cf. le tutorial de Hugo Etiévant.

    Ce n'est pas la méthode "matches()" mais "find()" que tu dois utiliser dans ton cas

    Et vu ce que tu veux faire, un simple "indexOf()" suffit (et sera plus rapide): pas besoin d'en venir aux expressions régulières

    A lire aussi :
    - Tutoriels Java : http://java.developpez.com/cours/
    - Le formidable cours Java de jmdoudou : http://jmdoudoux.developpez.com/cours/developpons/java/
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  6. #6
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 287
    Par défaut
    merci
    en effet ça marche avec find()

    Je vais voir ce tutoriel

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C# WPF] Parser un texte selon une liste
    Par PatteDePoule dans le forum C#
    Réponses: 0
    Dernier message: 25/01/2010, 18h00
  2. Parser un texte long
    Par djetlou dans le forum IHM
    Réponses: 2
    Dernier message: 22/01/2009, 17h29
  3. java parser du text
    Par snetechen dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 21/05/2007, 13h52
  4. [XSLT] parser du texte dans un noeud
    Par Raumfahrerralf dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 16/03/2007, 13h00
  5. parser fichier texte pour avoir un doc html !!
    Par avogadro dans le forum Débuter
    Réponses: 4
    Dernier message: 30/03/2006, 16h12

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