Pb regex java

Fermé
atspinto Messages postés 338 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 8 août 2014 - 20 mai 2009 à 03:07
atspinto Messages postés 338 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 8 août 2014 - 20 mai 2009 à 14:55
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 3927 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 723
20 mai 2009 à 08:03
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 samedi 30 août 2008 Statut Membre Dernière intervention 8 août 2014 27
20 mai 2009 à 13:09
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 3927 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 723
20 mai 2009 à 14:24
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 samedi 30 août 2008 Statut Membre Dernière intervention 8 août 2014 27
20 mai 2009 à 14:55
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