从字符串中间修剪空格

Chr*_*her 11 regex parsing

我正在使用以下正则表达式捕获固定宽度的"描述"字段,该字段总是50个字符长:

(?.{50})
Run Code Online (Sandbox Code Playgroud)

我的问题是描述有时包含很多空格,例如

"FLUID        COMPRESSOR                          "
Run Code Online (Sandbox Code Playgroud)

有人可以提供一个正则表达式:

  1. 最后修剪所有空格
  2. 将单词之间的任何空格折叠到单个空格

sk.*_*sk. 15

用一个空格替换两个或多个空格:

s/  +/ /g
Run Code Online (Sandbox Code Playgroud)

编辑:对于任何空白区域(不仅仅是空格),如果您使用的是perl兼容的正则表达式库,则可以使用\ s,以及出现次数的大括号语法,例如

s/\s\s+/ /g
Run Code Online (Sandbox Code Playgroud)

要么

s/\s{2,}/ /g
Run Code Online (Sandbox Code Playgroud)

编辑#2:忘了/ g全局后缀,谢谢JL


Ala*_*ore 9

str = Regex.Replace(str, " +( |$)", "$1");
Run Code Online (Sandbox Code Playgroud)