繁体   English   中英

如何在Java中删除字符串开头而不是制表符的空格?

[英]How to remove spaces at the beginnig of a string but not tabs in Java?

I,必须从\\ t字符之外的字符串中删除前导空格。 例如

" \\thello"

应该成为

"\\thello"

我尝试过

stringToTrim = stringToTrim.replaceAll("^\\s+", "");

但是正则表达式也与制表符匹配,结果是

"hello"

是否可以使用正则表达式删除前导空格,但不能删除制表符?

在Java中,可以使用字符类减法来限制更通用的模式。

采用

stringToTrim = stringToTrim.replaceFirst("^[\\s&&[^\t]]+", "");

这里,

  • ^ -匹配字符串的开头
  • [ -角色类的开始
  • \\\\s任何空格模式
  • && -交集运算符
  • [^\\t] -除制表符外的任何字符
  • ] -字符类的结尾
  • + -与一个或多个匹配项匹配的量词。

注意,由于只有1个替换,因此使用.replaceFirst而不是.replaceAll是有意义的。

如果您只对空白感兴趣,那么stringToTrim.replaceFirst("^ *", "")将为您服务。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM