[JAVA][RESOLU] expression régulière

expression régulière [JAVA][RESOLU] - Java - Programmation

Marsh Posté le 08-11-2004 à 11:03:45    

Je veux vérifier qu'une chaine est dans une autre avec une expression
régulière
 
je fait :
 
maChaine.matches(maSousChaine)
 
Le problème est qu'il faut remplecer les * de maSousChaine par (.)*
pour que cela fonctionne bien.
 
Or, pour faire ce remplacement, je pensais faire :
 
maSousChaine = maSousChaine.replaceAll("*","(.)*" );
 
Mais cela génère une exception, car le 1er argument de replaceAll est aussi une expression régulière  :fou:  
 
Comment puis-je faire ?


Message édité par no_code le 08-11-2004 à 11:31:23
Reply

Marsh Posté le 08-11-2004 à 11:03:45   

Reply

Marsh Posté le 08-11-2004 à 11:11:18    

Donne un exemple concret car selon ce que j'ai compris, je ne pense pas que tu puisse faire ton remplacement avec juste un replaceAll

Reply

Marsh Posté le 08-11-2004 à 11:14:20    

exemple :
maSousChaine = "i*u" ;
maChaine = "voiture" ;
 
je veux que maChaine.matches(maSousChaine) réponde true
 
Pour cela , il faut que maSousChaine soit i(.)*u et non i*u
 
D'ou l'idée du : maSousChaine = maSousChaine.replaceAll("*","(.)*" );  
 
qui ne fonctionne pas
 

Reply

Marsh Posté le 08-11-2004 à 11:23:03    

Ok. C'est plus claire :
Pour despécialiser un caractere joker d'expression réguluière il faut le précédent d'un \.

Code :
  1. souschaine = souschaine.replaceAll("\\*","(.)*" );

Reply

Marsh Posté le 08-11-2004 à 11:30:26    

Bien vu, merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed