解析Ruby中的引号

时间:2015-06-24 18:42:57

标签: ruby parsing

我正在尝试解析一个字符串,但我遇到了麻烦:

str = " @Var(\"^This is the text I want to save.\") "

我想要解析的是:^This is the text I want to save.基本上是引号之间的任何内容。

我试图使用str.split() ...但我不确定要指定什么。

由于

3 个答案:

答案 0 :(得分:2)

您可以使用正则表达式。这里:

"

上述正则表达式基本上会查找"和{{1}}之间的所有内容并返回它们。

答案 1 :(得分:2)

这应该有效 - 假设您不希望有多个引用的部分。 1指定您想要的匹配组。

puts str[/"(.*)"/, 1]                                            
# ^This is the text I want to save.

答案 2 :(得分:0)

如果要获取不同大小的数组,可以分两步执行:.split.scan。在你的情况下,.scan()的两边都有|,这就是你遇到nil问题的原因(这应该是有用的,但不是你的情况)。因此,您可以使用.flatten.compact或添加.delete的第3步。

试试这个:

text.split("\n").map{|i|p i.scan(/'([^']+)'|(\w+)/).flatten.compact}
text.split("\n").map{|i|p i.scan(/'[^']+'|\w+/).map{|i|i.delete "'"}}