我有一个这样的字符串:
Mr Moh Jo\n
Address\n
33333 City\n\n
Aland Islands
Run Code Online (Sandbox Code Playgroud)
我想删除每行开头的空格并使用以下代码结束每行的结尾,但它不起作用
public static String trimWhiteSpaceFromTheBeginingAndEndOFTheLine(
String string) {
Pattern trimmer = Pattern.compile("^\\s+|\\s+$");
Matcher m = trimmer.matcher(string);
StringBuffer out = new StringBuffer();
while (m.find())
m.appendReplacement(out, "");
m.appendTail(out);
return out.toString();
}
Run Code Online (Sandbox Code Playgroud)
预期结果:
Mr Moh Jo\n
Address\n
33333 City\n\n
Aland Islands
Run Code Online (Sandbox Code Playgroud)
只需在正则表达式中启用多行标志。
Pattern.compile("(?m)^[\\s&&[^\\n]]+|[\\s+&&[^\\n]]+$");
砰。完毕。
您还可以使用replaceAllcall替换所有匹配器代码:
public static String trimWhiteSpaceFromTheBeginingAndEndOFTheLine(
String string) {
return string.replaceAll("(?m)^[\\s&&[^\\n]]+|[\\s+&&[^\\n]]+$", "");
}
Run Code Online (Sandbox Code Playgroud)