1

我正在努力学习红宝石。在 Ruby中转换'"abcd" "efg"'为 a的优雅方法是什么?['abcd', 'efg']

谢谢。

4

3 回答 3

3

试试这个:

require 'shellwords'
'"abcd" "efg"'.shellsplit
#=> ["abcd", "efg"]
于 2012-06-10T08:38:47.733 回答
1

您也可以通过删除"字符然后按空格分割来做到这一点

'"abcd" "efg"'.tr('"','').split
'"abcd" "efg"'.delete('"').split
于 2012-06-10T16:54:15.707 回答
0

您可以使用scanwhich 查找字符串中所有出现的模式。

'"aaa" "bbb"'.scan(/"([^"]*)"/)
=> [["aaa"], ["bbb"]]

解释:

  • /something/是一个正则表达式(可以匹配字符串)
  • /"something"/是一个正则表达式,匹配开头和结尾的字符串"
  • [^"]匹配任何不是"
  • [^"]*尽可能多地匹配这些字符。
  • ()告诉它在结果中想要我想要的位。
于 2012-06-11T23:15:50.750 回答