Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
575 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [RESOLU] expression régulière

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU] expression régulière

n°1735437
Digaboy
Posté le 21-05-2008 à 22:44:57  profilanswer
 

Bonjour
 
J'ai un petit problème avec mes expressions régulière en java.  
 
Voici ce que j'essaie de faire:
- j'ai une chaine qui ressemble à : 56.0+9.15-8*3.0
- je souhaite extraire chaque terme ainsi que chaque opérateur pour y mettre dans un tableau de String
 
Ce que j'ai fais

Code :
  1. Pattern p = Pattern.compile("([0-9]+\\.?[0-9]*)([+/*-]?)" );
  2. Matcher m = p.matcher(chaine);
  3. boolean b = m.matches();
  4.  
  5. System.out.println("decouper : "+chaine +"\t taille :"+m.groupCount()+"\t etat : "+b);
  6.  
  7. if(b)  
  8. {
  9. for(int i=0; i<=m.groupCount(); i++)  
  10. System.out.println("Groupe " + i + " : " + m.group(i));
  11. }


 
Le problème c'est que je ne rentre jms dans mon expression si ma chaine est complète.
Par contre si ma chaine ressemble à 15.05 ou 15.05+ alors j'arrive à extraire mes deux bouts de chaine sans problème.
 
je pense que mon problème vient du fais que je ne parcours pas la chaine mais je ne vois pas comment faire.
 
Si vous pouviez me dire ce qui coince  
 
merci


Message édité par Digaboy le 21-05-2008 à 23:56:41
mood
Publicité
Posté le 21-05-2008 à 22:44:57  profilanswer
 

n°1735450
Digaboy
Posté le 21-05-2008 à 23:56:14  profilanswer
 

bon après pas mal de test et un peu d'aide j'ai résolu mon problème:
 

Code :
  1. public static String[] decoupString(String chaine)
  2. {
  3. int i;
  4. Pattern p = Pattern.compile("[+/*-]" );
  5. String[] valOp = p.split(chaine,20);
  6. p = Pattern.compile("[0-9]+\\.?[0-9]*" );
  7. String[] op = p.split(chaine,20);    
  8. String[] tabRslt = new String[valOp.length+op.length-2];
  9.  
  10. for(i=0;i< valOp.length;i++)
  11.   tabRslt[2*i]=valOp[i];
  12. for(i=0;i< op.length-2;i++)
  13.  tabRslt[2*i+1] = op[i+1];
  14.  
  15. return tabRslt;
  16. }


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [RESOLU] expression régulière

 

Sujets relatifs
[Résolu] [Java] Requête BD : "Le jeu de résultats est fermé"[Résolu][Oracle] Problème requete
[Résolu] Besoin d'aide pour syntaxe expression régulièreexpression régulière [nouveau problème]
[Résolu]expression reguliere et date[Résolu] Expression régulière pour enlever les accents..
[JAVA][RESOLU] expression régulièreProbleme d'une simple expression reguliere [RESOLU]
Détection de smiley avec une expression régulière [Résolu][REGEXP][RESOLU] Expression régulière pour un nom NetBIOS d'ordinateur
Plus de sujets relatifs à : [RESOLU] expression régulière


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR