java - 删除每行开头的空格并结束每行的结尾

标签 java regex

我有这样一个字符串:

Mr Moh Jo\n
Address\n
 33333 City\n\n
Aland Islands

我想删除每行开头的空格并用以下代码结束每行的结尾,但它不起作用

    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();
}

预期结果:

Mr Moh Jo\n
Address\n
33333 City\n\n
Aland Islands

最佳答案

只需在正则表达式中启用多行标志。

Pattern.compile("(?m)^[\\s&&[^\\n]]+|[\\s+&&[^\\n]]+$");

砰。完成。

您还可以使用 replaceAll 调用替换所有匹配器代码:

public static String trimWhiteSpaceFromTheBeginingAndEndOFTheLine(
    String string) {
    return string.replaceAll("(?m)^[\\s&&[^\\n]]+|[\\s+&&[^\\n]]+$", "");
}

关于java - 删除每行开头的空格并结束每行的结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19269043/

相关文章:

java - 在 DAWG 而不是 Trie 上使用 Aho-Corasick

java - 如何从操作监听器调用方法,而不会使 JFrame 卡住并等待操作监听器完成?

具有指定开始和结束的序列的 Ruby 正则表达式

java - 为什么没有 glob :* match any path in PathMatcher?

正则表达式 - 匹配无限数量。固定长度的单词

objective-c - NSRegularExpression 不起作用

Java:为什么可以从类外部的静态方法访问非静态变量?

java - 如何将两个 wav 文件组合/合并为一个 wav 文件?

java - SQL 不适用于结果集

java - 正则表达式匹配连字符斜杠括号内的字母数字