为了账号安全,请及时绑定邮箱和手机立即绑定

用正则表达式替换 Java 中的空格和分号

用正则表达式替换 Java 中的空格和分号

BIG阳 2021-09-12 20:33:39
我试图用一个“;”替换所有可以包含任意数量空格后跟结尾“;”的字符串 但我很困惑,因为有多个空格。"ExampleString1            ;" -> "ExampleString1;""ExampleString2  ;" -> "ExampleString2;""ExampleString3     ;" -> "ExampleString3;""ExampleString1 ; ExampleString1 ;" -----> ExampleString1;ExampleString1我试过这样:example.replaceAll("\\s+",";")但问题是可能有多个空格,这让我很困惑
查看完整描述

3 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

试试这个:

replaceAll("\\s+;", ";").replaceAll(";\\s+", ";")


查看完整回答
反对 回复 2021-09-12
?
一只名叫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;


查看完整回答
反对 回复 2021-09-12
?
Qyouu

TA贡献1786条经验 获得超11个赞

你只需要\s像这样转义元字符:

"ExampleString1   ;".replaceAll("\\s+;$", ";")


查看完整回答
反对 回复 2021-09-12
  • 3 回答
  • 0 关注
  • 392 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信