Pb regex java

atspinto Messages postés 338 Date d'inscription   Statut Membre Dernière intervention   -  
atspinto Messages postés 338 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je travaille actuellement sur les regex en Java. j'ai un ptit pb. le code suivant marche super bien.
Mais kand je lis le meme regex , stocké dans un fichier xml, en la remplaçant just là, la fonction
marche plus.
Impossible d'identifier le regex "Chaine non trouvée" à tous les coups

/* -----------------------------*/
import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class Main {
public static void main(String[] args) {
String word = " public static void main( String[] args )";
String regex;
regex = "((public)((\\s+)*)(static)((\\s+)*)(void)((\\s+)*)(main)(\\()((\\s+)*)(String)(\\[)(\\])((\\s+)*)((?:[a-z][a-z0-9_]*))((\\s+)*)(\\)))";
String re2 = "((\\" + "\\s+)*)", re1 = "(.*?)";
regex += re2 + re1;
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(word);
if (matcher.find())
System.out.println("chaine trouvée");
else
System.out.println("chaine non trouvée");
}
}

/* ---------------------------*/

i need ur help.
A voir également:

4 réponses

sandul Messages postés 4013 Statut Membre 723
 
Salut,

Mais kand je lis le meme regex , stocké dans un fichier xml, en la remplaçant just là, la fonction marche plus. ==>

Souci de lecture (encodage) à partir du fichier XML ? Il serait utile de nous montrer comment tu lis à partir de celui-là. Ouvre le fichier XML avec un outil comme Notepad2 ou encore Notepad++ ou encore UltraEdit etc. pour voir l'encodage réel du fichier (qui doit normalement correspondre à l'encodage déclaré dans l'en-tête xml).

++
0
atspinto Messages postés 338 Date d'inscription   Statut Membre Dernière intervention   27
 
mon fichier je le lis assez simplement. en utilisant le package jdom. la fonction est la suivante.
Mon fichier est kom suit:
<?xml version="1.0" encoding="utf-8"?>
<language name="java" endInstr=";">
<keyword><key>pbl</key><word>myregex</word></keyword>

je sais donc pas comment proceder avec l'encodage qui comme tu dis serais la source du probleme.


/*-----------------------------------------------------*/
SAXBuilder sxb = new SAXBuilder();
try {
document = sxb.build(new File(path));
}
catch(Exception e){
System.out.println("le fichier peut pas etre ouvert");
System.out.println(e.getMessage());
}
racine = document.getRootElement();
Iterator<?> i = racine.getChildren("keyword").iterator();
while (i.hasNext()) {
elt = (Element)i.next();
System.out.println(elt.getChild("key").getText() + ", " + elt.getChild("word").getText());
}
/*------------------------------------------------------*/


thanks...
0
sandul Messages postés 4013 Statut Membre 723
 
Est-ce que ton document est vraiment encodé en utf-8 (comme son en-tête l'indique)? Il me semble (à vérifier!) que JDom tient compte de l'en-tête et que si déclaration fausse (par rapport au contenu réel) ce n'est pas bon.
0
atspinto Messages postés 338 Date d'inscription   Statut Membre Dernière intervention   27
 
ouais. il est vraiment en utf-8. j'ai jamais eu à faire ce genre de manip auparavant.....
je sais donc pas trop comment m'y prendre....

<?xml version="1.0" encoding="utf-8"?>
<language name="java" endInstr=";">
0