Ruby shellwords在拆分时保留引号

Ruby shellwords在拆分时保留引号,ruby,string,split,quoting,Ruby,String,Split,Quoting,给定需要拆分为标记的任意字符串,我将使用它完整地保留带引号的标记。但是,在此过程中,引号(或撇号)会丢失。我要找的是这样的东西: #method('this contains "a quoted" string') => ["this", "contains", "\"a quoted\"", "string"] #shellescape似乎没有帮助,因为它返回一些基本上无法丢弃的东西 如何保留引号(或撇号)作为标记的一部分?我是否需要以某种方式预处理字符串?(这有点违背了使用ISTM的

给定需要拆分为标记的任意字符串,我将使用它完整地保留带引号的标记。但是,在此过程中,引号(或撇号)会丢失。我要找的是这样的东西:

#method('this contains "a quoted" string')
=> ["this", "contains", "\"a quoted\"", "string"]
#shellescape
似乎没有帮助,因为它返回一些基本上无法丢弃的东西

如何保留引号(或撇号)作为标记的一部分?我是否需要以某种方式预处理字符串?(这有点违背了使用ISTM的目的。)


谢谢

为什么要保留引号?这似乎违背了使用Shellwords的意义。这对我来说是一个“XY问题”。
Shellwords.split(string)#=>[“this”、“contains”、“a quoted”、“string”]
的结果有什么问题?你想用这个数组做什么,这使得保留原始引号成为必要?例如,你希望
方法('它包含一个带引号的字符串')
Shellwords.split(string).map{s | s[/[^\\\]\s/]?['',s',s']的结果是什么?join:s}
我希望保留引号,以便,例如,我可以将命令行写回shell脚本。那就比较复杂了,;我正在解析
dhcpd
config文件,这些文件的语法定义非常严格。我很快会查看最后一个建议。