Ruby用逗号分隔吸收尾随空格

时间:2012-03-06 00:56:33

标签: ruby regex split

我需要将一个字符串拆分为两个变量。例如,以下内容可以正常工作:

first,second = "red,blue".split(',')

我想分割用户输入,逗号后面可能有一个可选空格。如何在逗号被吸收后写入空格?我需要正确处理所有这些可能性:

"red,blue"        # first="red" second="blue"
"red, blue"       # first="red" second="blue"
"red,dark blue"   # first="red" second="dark blue"
"red, light blue" # first="red" second="light blue"

3 个答案:

答案 0 :(得分:29)

修剪结果条目。执行此操作的方式取决于您是否要在逗号后面只支持一个空格,或者是否要删除所有前导空格(也可能是尾随空格)。如果您的目标是获取文字,就像样本中的文字一样,您应该删除所有周围的空格。

first,second = "red, blue".split(',').map(&:strip)

答案 1 :(得分:11)

您的代码中没有正则表达式 - 您使用字符串进行拆分,这会产生影响。 "red,blue".split(/\s*,\s*/)应该按预期工作。

答案 2 :(得分:1)

list.split(/, */) 

这是一个在逗号后面有或没有空格的正则表达式。