我需要转一个这样的字符串:
'apple orange "banana pear"'
Run Code Online (Sandbox Code Playgroud)
进入这样的数组
["apple", "orange", "banana pear"]
Run Code Online (Sandbox Code Playgroud)
这就像命令行参数转换为ARGV数组的方式.在Ruby中执行此操作的最佳方法是什么?
sep*_*p2k 10
您可以使用Shellwordsruby标准库中的模块,该库完全用于此目的:
require 'shellwords'
Shellwords.shellwords 'apple orange "banana pear" pineapple\ apricot'
#=> ["apple", "orange", "banana pear", "pineapple apricot"]
Run Code Online (Sandbox Code Playgroud)
从上面的示例中可以看出,这也允许您以与shell中相同的方式使用反斜杠转义空格.当然,您也可以使用单引号而不是双引号,并使用反斜杠转义这两种引号以获得文字的双引号或单引号.