Salut à tous
J'ai besoin de transformer des sous-chaînes de caractères à l'intérieur d'une chaîne de caractères. Pour ce faire, j'utilise la méthode replaceAll de notre chère classe String. Le 1er paramètre de la méthode doit être la chaîne cherchée sous forme d'une expression régulière et le 2ème paramètre, la chaîne de remplacement, exemple :
Ma question est, puis-je rassembler les 2 dernières étapes en une seule ? Effectivement, les parenthèses ouvrantes et fermantes sont remplacées par la même chaîne de caractères. Ce doit être possible avec les expressions régulières, j'imagine quelque chose du style :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 String str = "Hello world ! (cpr)"; System.out.println( str.replaceAll( "world", "monde" ) ); // 1er cas, aucun problème particulier, cela nous donne : // Hello monde ! (cpr) // 2ème cas, plus complexe, je voudrais transformer (cpr) et -cpr- String str2; str2 = str.replaceAll( "\\(", "-" ) ); // !!! expression régulière, ( est un caractère spécial, donc pour l'utiliser // comme un caractère normal il faut le faire précéder d'un antislash, // soi 2 dans une chaîne de caractère bien-sûr str2 = str2.replaceAll( "\\)", "-" ) ); // même remarque que précédemment pour le caractère ) // ce qui nous donne au final : // Hello world ! -cpr-
Et peut-on également spécifier que l'on ne veut pas tenir compte de la casse (ignore case) ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 str2 = str.replaceAll( "[\\(][\\)]", "-" );
Par avance merci.
Bon week-end et joyeuse pâques
-David-
Partager