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

Java Discussion :

Problème regex Java


Sujet :

Java

  1. #1
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 20
    Par défaut Problème regex Java
    Bonjour,
    comment extraire les numéros de ligne d'une classe java avec regex
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    package Commentaire;
    import java.awt.Dimension;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.Scanner;
    import java.util.regex.Pattern;
     
    import javax.swing.ButtonGroup;
    import javax.swing.DefaultListModel;
    import javax.swing.JButton;
    import javax.swing.JCheckBox;
    import javax.swing.JFrame;
    import javax.swing.JList;
    import javax.swing.JPanel;
    import javax.swing.JRadioButton;
    import javax.swing.JScrollPane;
    import javax.swing.ListSelectionModel;
     
     
     
    public class Essay extends JFrame implements ActionListener {
     
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
     
    	JList list ;
    	DefaultListModel model;
       final  JButton A ;
       JPanel panel ;
       JScrollPane P ;
       JCheckBox chek ;
    public Essay() {
    	setSize(new Dimension(1000, 1000));
    	 list = new JList();
    	 list.setSize(new Dimension(700, 700));
     
    	model = new DefaultListModel();
    	panel = new JPanel() ;
        P = new JScrollPane() ;
    A = new JButton("Afficher");
    int i ;
     
    A.addActionListener(new ActionListener() {
     
    	@Override
    	public void actionPerformed(ActionEvent arg0) {
    		// TODO Auto-generated method stub
     
    		try {
     
    		String filePath1 = "C:\\Users\\alaa.fezzani\\Desktop\\A.txt";
    		String line;
    		String data="blabla";
     
    		BufferedReader bf = new BufferedReader(new FileReader(filePath1));
    		try {
    			while ( (line = bf.readLine()) != null ) { 
    			      data += line;
    			}
     
    			String [] mesCommentaires = data.split("(/\\*)|(\\*/)");
    			for(int i = 1; i < mesCommentaires.length; i+=2){
    			       System.out.println(mesCommentaires[i]);
    			       list.setModel(model) ;
    					model.addElement(mesCommentaires[i]) ;
     
                         // chek  = new JCheckBox() ;
     
                        //  list.add(chek) ;
                         // panel.add(chek);
    					 // chek.setVisible(true);  
     
    			}
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		} catch (FileNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
     
     
     
     
    	}
    });
    P.getViewport().setView(list);
    P.setPreferredSize(new Dimension(500, 500));
    P.createVerticalScrollBar() ;
    panel.add(A) ;
    panel.add(P);
     
    getContentPane().add(panel);
    setVisible(true);
     
    }
     
     
    public static void main(String[] args) {
     
    	new Essay();
     
    }
     
     
    @Override
    public void actionPerformed(ActionEvent arg0) {
    	// TODO Auto-generated method stub
     
    }
    }

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    La j'avoue ne pas comprendre le rapport entre la question et le code source. De plus la question me semble un peu vague (voir sans réponse possible).
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

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

  3. #3
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 680
    Par défaut
    Une expression régulière ne permet pas de récupérer directement le numéro de la ligne dans laquelle l'expression correspond.
    Ce que tu peut faire si ton expression ne porte pas sur plusieurs lignes, c'est de tester l'expression sur chaque ligne.

  4. #4
    Membre très actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2011
    Messages : 181
    Billets dans le blog
    1
    Par défaut
    slt,
    Si j'ai bien compris t'as question, tu veut connaitre le numéro de la ligne que tais en train de lire.
    J'ai remarqué que tu a utilisé la méthode readline () de la classe BufferedReader, cette méthode retourne a chaque exécution le contenu de la ligne lu en String si la ligne n'est pas vide, sinon elle retourne null, donc tu peut faire ça :
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    package Commentaire;
    import java.awt.Dimension;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.Scanner;
    import java.util.regex.Pattern;
     
    import javax.swing.ButtonGroup;
    import javax.swing.DefaultListModel;
    import javax.swing.JButton;
    import javax.swing.JCheckBox;
    import javax.swing.JFrame;
    import javax.swing.JList;
    import javax.swing.JPanel;
    import javax.swing.JRadioButton;
    import javax.swing.JScrollPane;
    import javax.swing.ListSelectionModel;
     
     
     
    public class Essay extends JFrame implements ActionListener {
     
    	/**
    	 * 
    	 */
    	private static final long serialVersionUID = 1L;
     
    	JList list ;
    	DefaultListModel model;
       final  JButton A ;
       JPanel panel ;
       JScrollPane P ;
       JCheckBox chek ;
    public Essay() {
    	setSize(new Dimension(1000, 1000));
    	 list = new JList();
    	 list.setSize(new Dimension(700, 700));
     
    	model = new DefaultListModel();
    	panel = new JPanel() ;
        P = new JScrollPane() ;
    A = new JButton("Afficher");
    int i ;
     
    A.addActionListener(new ActionListener() {
     
    	@Override
    	public void actionPerformed(ActionEvent arg0) {
    		// TODO Auto-generated method stub
     
    		try {
     
    		String filePath1 = "C:\\Users\\alaa.fezzani\\Desktop\\A.txt";
    		String line;
    		String data="blabla";
                    int num_ligne = 0;
    		BufferedReader bf = new BufferedReader(new FileReader(filePath1));
    		try {
    			while ( (line = bf.readLine()) != null ) { 
                                  ++num_ligne;
    			      data += line + "num = " + num_ligne;
    			}
    			String [] mesCommentaires = data.split("(/\\*)|(\\*/)");
    			for(int i = 1; i < mesCommentaires.length; i+=2){
    			       System.out.println(mesCommentaires[i]);
    			       list.setModel(model) ;
    					model.addElement(mesCommentaires[i]) ;
     
                         // chek  = new JCheckBox() ;
     
                        //  list.add(chek) ;
                         // panel.add(chek);
    					 // chek.setVisible(true);  
     
    			}
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		} catch (FileNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
     
     
     
     
    	}
    });
    P.getViewport().setView(list);
    P.setPreferredSize(new Dimension(500, 500));
    P.createVerticalScrollBar() ;
    panel.add(A) ;
    panel.add(P);
     
    getContentPane().add(panel);
    setVisible(true);
     
    }
     
     
    public static void main(String[] args) {
     
    	new Essay();
     
    }
     
     
    @Override
    public void actionPerformed(ActionEvent arg0) {
    	// TODO Auto-generated method stub
     
    }
    }
    C-a-dire que tu declare un entier que tu initialise a 0, et a chaque fois qu'il y a une ligne qui est lue, tu incrémente l'entier et tu le concatine avec la chaine que tu veut afficher c-a-dire "data".
    Sinon tu peut faire ca :
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    package Commentaire;
    import java.awt.Dimension;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.Scanner;
    import java.util.regex.Pattern;
     
    import javax.swing.ButtonGroup;
    import javax.swing.DefaultListModel;
    import javax.swing.JButton;
    import javax.swing.JCheckBox;
    import javax.swing.JFrame;
    import javax.swing.JList;
    import javax.swing.JPanel;
    import javax.swing.JRadioButton;
    import javax.swing.JScrollPane;
    import javax.swing.ListSelectionModel;
     
     
     
    public class Essay extends JFrame implements ActionListener {
     
    	/**
    	 * 
    	 */
    	private static final long serialVersionUID = 1L;
     
    	JList list ;
    	DefaultListModel model;
       final  JButton A ;
       JPanel panel ;
       JScrollPane P ;
       JCheckBox chek ;
    public Essay() {
    	setSize(new Dimension(1000, 1000));
    	 list = new JList();
    	 list.setSize(new Dimension(700, 700));
     
    	model = new DefaultListModel();
    	panel = new JPanel() ;
        P = new JScrollPane() ;
    A = new JButton("Afficher");
    int i ;
     
    A.addActionListener(new ActionListener() {
     
    	@Override
    	public void actionPerformed(ActionEvent arg0) {
    		// TODO Auto-generated method stub
     
    		try {
     
    		String filePath1 = "C:\\Users\\alaa.fezzani\\Desktop\\A.txt";
    		String line;
    		String data="blabla";
    		BufferedReader bf = new BufferedReader(new FileReader(filePath1));
    		try {
    			while ( (line = bf.readLine()) != null ) { 
    			      data += line + "\n";
    			}
    			String [] mesCommentaires = data.split("\n");
    			for(int i = 1; i < mesCommentaires.length; i++){
    			      System.out.println(mesCommentaires[i].replace ("(/\\*)|(\\*/)") + "num = " + i);
    			       list.setModel(model) ;
    					model.addElement(mesCommentaires[i]) ;
     
                         // chek  = new JCheckBox() ;
     
                        //  list.add(chek) ;
                         // panel.add(chek);
    					 // chek.setVisible(true);  
     
    			}
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		} catch (FileNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
     
     
     
     
    	}
    });
    P.getViewport().setView(list);
    P.setPreferredSize(new Dimension(500, 500));
    P.createVerticalScrollBar() ;
    panel.add(A) ;
    panel.add(P);
     
    getContentPane().add(panel);
    setVisible(true);
     
    }
     
     
    public static void main(String[] args) {
     
    	new Essay();
     
    }
     
     
    @Override
    public void actionPerformed(ActionEvent arg0) {
    	// TODO Auto-generated method stub
     
    }
    }
    Remarque : Ceci ne fonctionne, que si tes données sont reparties ligne par ligne.

Discussions similaires

  1. [RegEx] Problème Regex PCRE
    Par raptorman dans le forum Langage
    Réponses: 6
    Dernier message: 07/07/2006, 17h23
  2. Problème de java.lang.NoClassDefFoundError
    Par nramariavelo dans le forum Hibernate
    Réponses: 5
    Dernier message: 13/06/2006, 14h54
  3. problème sous java
    Par lazzeroni dans le forum Oracle
    Réponses: 4
    Dernier message: 12/04/2006, 15h16
  4. Problème Applet Java et Win XP SP2
    Par octal dans le forum Applets
    Réponses: 4
    Dernier message: 04/02/2006, 09h57
  5. divers problème avec Java et jdbc
    Par chti_juanito dans le forum JDBC
    Réponses: 28
    Dernier message: 31/10/2005, 16h54

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