我正在努力学习红宝石。在 Ruby中转换'"abcd" "efg"'
为 a的优雅方法是什么?['abcd', 'efg']
谢谢。
试试这个:
require 'shellwords'
'"abcd" "efg"'.shellsplit
#=> ["abcd", "efg"]
您也可以通过删除"
字符然后按空格分割来做到这一点
'"abcd" "efg"'.tr('"','').split
'"abcd" "efg"'.delete('"').split
您可以使用scan
which 查找字符串中所有出现的模式。
'"aaa" "bbb"'.scan(/"([^"]*)"/)
=> [["aaa"], ["bbb"]]
解释:
/
something/
是一个正则表达式(可以匹配字符串)/"
something"/
是一个正则表达式,匹配开头和结尾的字符串"
[^"]
匹配任何不是"
[^"]*
尽可能多地匹配这些字符。(
并)
告诉它在结果中想要我想要的位。