[英]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.