Regex bloque l'application
Bonjour tous le monde
je ne sais pas si c'est le bon forum, mais j'espere trouvé ici un peu d'aide pour mon probleme
j'ai ecris une fonction pour traiter des textes avec des expressions regulieres, et surtout donner à l'utilisateur la posibilité de tester ses expressions comme il veus, donc si c'est bon, il a le resultat sinon il 'a le message que la regex est fause.
voila mon code.
Code:
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
|
public void B_result_actionPerformed(ActionEvent e)
{
String text = this.Edit_msgTxt.getText();
ComboResult.removeAllItems();
String regex =Edit_Regex.getText();
RE r = null;
try{
r = new RE(regex);
}catch(RESyntaxException REex) {ComboResult.addItem(REex);}
Boolean bool=false;
bool= r.match(text);
if(bool)
{
String str="";
for (int i = 0; i < r.getParenCount(); i++)
{
if(r.getParenLength(i)>0)
{
str=r.getParen(i);
}
else
{
str="NO MATCH";
}
ComboResult.addItem(i+") "+str);
}//end for
}//end if
else
{
ComboResult.addItem("Failed match");
}
} |
j'etulise le package
mon probleme est le suivant:
la procedure marche dans la majorité des cas super bien, danc renvoi les groupe quand ça match sinon "Failed match" dans le cas contraire.
mais parfois l'apllication block sur et là c'est la cata, il faut se servir du gestionnaire des taches pour terminer l'application. en plus j'ai aucune exception de retour. si comme s'il est rester bloquer dans une boucle dans la fonction match(texte).
est ce que quelq'un à déjà eu ce problemme avec cette classe "org.apache.regexp.RE" ou bien qu"il peu m'aider à voir plus clair sur le sujet.
merci d'avance :)