我有一个非空格字符之间有2,3或更多空格的字符串
string = "a b c d"
我能做些什么来做到这一点:
output_string == "a b c d"
答案 0 :(得分:11)
最简单的方法是使用正则表达式:
iex(1)> string = "a b c d"
"a b c d"
iex(2)> String.replace(string, ~r/ +/, " ") # replace only consecutive space characters
"a b c d"
iex(3)> String.replace(string, ~r/\s+/, " ") # replace any consecutive whitespace
"a b c d"
答案 1 :(得分:3)
为了它的价值,你甚至不需要正则表达式:
iex(3)> "a b c d" |> String.split |> Enum.join(" ")
#=>"a b c d"
同样,从我的一点点烟雾测试来看,它看起来像是可以用于任何空格分隔符(即,就我所知,它适用于空格和制表符。)
答案 2 :(得分:2)
另一种可能性是String#split
和Enum#join
:
iex(1)> "a b c d" |> String.split(~r{\s+}) |> Enum.join(" ")
#⇒ "a b c d"
答案 3 :(得分:0)
Regex.replace(~r / \ s + /," a b c d","")