使用正则表达式删除特定字符前的空格

Alp*_*lan 0 java regex

说,我有一个像第一行的字符串,我需要将其转换为第二行.

"English       ,Spanish         ,Eastern Japanese          "
"English,Spanish,Eastern Japanese"
Run Code Online (Sandbox Code Playgroud)

如您所见,逗号之前有几个空格,但每个元素的变量之间也可能有空格(如"Eastern Japanese").所以,我需要的是删除逗号之前的多个空格.我可以在使用replaceAll()方法之前修剪最后出现的空格,这没问题.

Wik*_*żew 7

您可以删除多余的空格replaceAll:

  String s = "English      ,Spanish".replaceAll("\\s+,",",");
Run Code Online (Sandbox Code Playgroud)

请参阅IDEONE演示

或者trim():

System.out.println("English      ,Spanish    ".replaceAll("\\s+,",",").trim());
Run Code Online (Sandbox Code Playgroud)

另一个演示

而另一个提示:如果有空格后修剪,,添加\\s*,的模式:

.replaceAll("\\s+,\\s*",",")
Run Code Online (Sandbox Code Playgroud)