gpt4 book ai didi

ruby - 如何在 Ruby 中拆分参数字符串 Bash 样式?

转载 作者:数据小太阳 更新时间:2023-10-29 07:13:41 25 4
gpt4 key购买 nike

我正在为一个项目制作一个简单的 shell,我希望像在 Bash 中一样解析参数字符串。

foo bar "hello world" fooz

应该变成:

["foo", "bar", "hello world", "fooz"]

等等。到目前为止,我一直在使用 CSV::parse_line,将列分隔符设置为 "".compact 输出。问题是我现在必须选择是要支持单引号还是双引号。 CSV 不支持超过一个分隔符。

Python 有一个名为 shlex 的模块:

>>> shlex.split("Test 'hello world' foo")
['Test', 'hello world', 'foo']
>>> shlex.split('Test "hello world" foo')
['Test', 'hello world', 'foo']

是否有任何隐藏的内置 Ruby 模块可以做到这一点?对于解决方案的任何建议,我们将不胜感激。

最佳答案

Ruby 有模块 Shellwords :

require "shellwords"

Shellwords.shellsplit('Test "hello world" foo')
# => ["Test", "hello world", "foo"]

'Test "hello world" foo'.shellsplit
# => ["Test", "hello world", "foo"]

关于ruby - 如何在 Ruby 中拆分参数字符串 Bash 样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17313929/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com