Postscript
J'ai remarqué qu'un caractère ne correspond pas
De " ^ [\ t \ n] * ([^ \ t \ n] + (. | \\ s) * [^ \ t \ n] +) [\ t \ n] * $ "
Fixé à " ^ [\ t \ n] * ([^ \ t \ n] * (. | \\ s) * [^ \ t \ n] +) [\ t \ n] * $ "
.
Le premier plus est devenu un astérisque.
Je déteste les expressions régulières. Le but est de laisser les sauts de ligne et les tabulations autres qu'avant et après. Je suis vraiment dedans, alors je vais écrire un article.
public static String trimNewline(String str) {
String regex = "^[\t\n]*([^\t\n]*(.|\\s)*[^\t\n]+)[\t\n]*$";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(str);
if (m.find()) {
return m.group(1);
} else { //Les "caractères vides" et les "chaînes de caractères constituées uniquement de tabulations et de sauts de ligne" ne correspondent pas et viennent ici
return "";
}
}
Si vous regardez les expressions régulières Java
System.out.println(trimNewline("\t\n\t\nhoge\t\n\t\n")); // hoge
System.out.println(trimNewline("\t\n\t\nhoge")); // hoge
System.out.println(trimNewline("hoge\t\n\t\n")); // hoge
En outre, il y a des sauts de ligne et des tabulations au milieu,
"\t\n\n\n\t\tho\t\t\nhoge\nge\t\n\t\n"
moi aussi,
Il a été retiré en toute sécurité uniquement à l'avant et à l'arrière.
Recommended Posts