Boh*_*ian 2 java regex string whitespace replace
有一种简单的方法可以用一个制表符替换行开头的所有空格吗?
我想过使用一个循环和一个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();
Run Code Online (Sandbox Code Playgroud)
但这似乎太难了.
这应该工作:
str = str.replaceAll("(?m)^\\s+", "\t");
Run Code Online (Sandbox Code Playgroud)
该(?m)标志表示"克拉和美元匹配行的开始和结束",因此^将匹配字符串中每一行的开头.