我试图用一个“;”替换所有可以包含任意数量空格后跟结尾“;”的字符串 但我很困惑,因为有多个空格。"ExampleString1 ;" -> "ExampleString1;""ExampleString2 ;" -> "ExampleString2;""ExampleString3 ;" -> "ExampleString3;""ExampleString1 ; ExampleString1 ;" -----> ExampleString1;ExampleString1我试过这样:example.replaceAll("\\s+",";")但问题是可能有多个空格,这让我很困惑
3 回答
一只名叫tom的猫
TA贡献1906条经验 获得超3个赞
基本上做匹配首先找到
(.+?) -> anything in a non-greedy fashion
(\\s+) -> followed by any number of whitespaces
(;) -> followed by a ";"
$ -> end of the string
而不是简单地删除第二组(空白),只需通过 $1$3
String test = "ExampleString1 ;";
test = test.replaceFirst("(.+?)(\\s+)(;)$", "$1$3");
System.out.println(test); // ExampleString1;
添加回答
举报
0/150
提交
取消