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

And*_*rew 12 ruby regex split

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

first,second = "red,blue".split(',')
Run Code Online (Sandbox Code Playgroud)

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

"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"
Run Code Online (Sandbox Code Playgroud)

Lil*_*ard 30

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

first,second = "red, blue".split(',').map(&:strip)
Run Code Online (Sandbox Code Playgroud)


Ale*_*ohl 11

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

  • 只需将另一个\ s放在逗号前面:"红色,蓝色".split(/\s*,\ s*/)` (3认同)