Bonjour,
Je souhaiterais remplacer les @ à la fin d'un mot par une autre lettre. Quand je teste @\\\\b cela fonctionne pas (bien que a\\\\b fonctionne bien si je veux remplacer a à la fin d'un mot). Quelqu'un peux m'aider ?
import java.util.regex.Pattern;
static String remplacerFinMots(String phrase, String finAvant,String finApres)
{
return Pattern.compile(finAvant+"(?=\\W)")
.matcher(phrase)
.replaceAll(finApres);
}
public static void main(String args[])
{
System.out.println(remplacerFinMots("M@ phr@se de test.", "@", "a"));
// "M@ phr@se de test." -> "Ma phr@se de test."
}
String phrase = "M@ phr@se de test.";
phrase = phrase.replaceAll("@", "a");
System.out.println("\nphrase : " + phrase);
String phrase = "M@ phr@se de test.";
// compilation de la regex avec le motif : "@"
Pattern p = Pattern.compile("@");
// création du moteur associé à la regex sur la chaîne "M@ phr@se de test."
Matcher m = p.matcher(phrase);
// remplacement de toutes les occurrences de "@" par "a"
phrase = m.replaceAll("a");
System.out.println("\nphrase : " + phrase);
String ... = Pattern.compile(...).matcher(...).replaceAll(...);
compile(finAvant+"(?=[\\W$])")
compile("(?=\\b)@(?=[\\W$])")
Combien cela coûte-t-il au total ? Quelles aides apportent l'état et les acteurs du marché pour alléger cette charge non choisie ? Tous les détails sur Commentçamarche.net.
Bien sûr je le savais mais c'était un peu effacé de ma mémoire et j'ai mis deux minutes à ce que ça me revienne.
Je dis aussi ça pour souligner cette pratique. En ignorant à quoi servent certaines aptitudes des regex, on sous-exploite leur immenses possibilités.