Je me demande pourquoi je n'obtiens pas le résultat attendu avec celui-ci:
String text = null;
text = FileUtils.readFileToString(inFile);
Pattern p = Pattern.compile("<script language='javascript'>.+?</script>\n", Pattern.DOTALL);
text = p.matcher(text).replaceAll("");
out.write(text);
3 Réponses :
Les chaînes sont immuables. String Operations telles que RetourLL code> Ne modifiez pas l'instance que vous appelez avec, ils renvoient de nouvelles instances de chaîne. La solution consiste à attribuer la chaîne modifiée à votre variable d'origine. t = t.replaceAll("\n", "");
Pour être portable entre les OSES, utiliser system.geproperty ("line.sparator") code> au lieu du caractère Linefeed.
Oui, \ n code> est spécial. C'est une séquence d'évacuation qui représente une nouvelle ligne.
Vous devez vous échapper dans un littéral à chaîne afin que cela soit réellement interprété comme vous le souhaitez. Ajouter A \ avant la séquence de sorte qu'il ressemble à ceci: String t = "1302248663033 <script language='javascript'>nvieor\\ngnroeignrieogi</script>";
t = t.replaceAll("\\n", "");
System.out.println(t);
J'ai raté l'autre erreur que tout le monde a souligné. Vous devez faire le résultat du remplacement () code> appelez et utilisez-le, pas la chaîne d'origine.
public static String escape(String s) {
return s
.replaceAll("\n", "")
.replaceAll("\r", "");
}