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