如何用标签替换行开头的所有空格?

时间:2013-12-31 14:50:46

标签: java regex string replace whitespace

是否有一种简单的方法可以用一个制表符替换行开头的所有空格?

我想过使用循环和StringBuffer

String s = "some multi line text\n      foo bar\n   blah";
StringBuffer sb = new StringBuffer(s);
for (int i = 0; i < sb.length(); i++) {
    if (sb.charAt(i) == '\n') {
        while (sb.charAt(i + 1) == ' ')
            sb.delete(i + 1, i + 2);
        sb.insert(i + 1, '\t');
    }
}
s = sb.toString();

但这似乎太难了。

1 个答案:

答案 0 :(得分:5)

这应该有效:

str = str.replaceAll("(?m)^\\s+", "\t");

(?m)标志表示“克拉和美元匹配行的开始和结束”,因此^将匹配字符串中每一行的开头。