在字符串上使用Ruby,如何使用RegEx在字符串的两个部分之间进行切片?

时间:2012-05-22 16:15:47

标签: ruby regex

我只想将字符串中两个特定点之间的文本保存到变量中。文本看起来像这样:

..."content"=>"The text I want to save to a variable"}]...

我想我必须使用扫描或切片,但不完全确定如何在不占用文本之前和之后的RegEx标识符的情况下拉出文本。我试过这个,但它不起作用:

var = mystring.slice(/\"content\"\=\>\".\"/)

4 个答案:

答案 0 :(得分:4)

这应该做的工作

var = mystring[/"content"=>"(.*)"/, 1]

请注意:

  • .slice别名[]
  • 您转义的所有字符都不是您正在使用的特殊正则表达字符
  • 您可以使用()
  • 对要保留的位进行“分组”
  • .slice / []选择第二个参数来挑选匹配的群组

答案 1 :(得分:2)

your_text = '"content"=>"The text I want to save to a variable"'
/"content"=>"(?<hooray>.*)"/ =~ your_text

之后,万岁的局部变量将被神奇地设置为包含您的文本。可用于设置多个变量。

答案 2 :(得分:1)

此正则表达式将匹配您的字符串:

/\"content\"=>\"(.*)\"/

您可以尝试使用rubular.com进行测试

答案 3 :(得分:1)

看起来你正试图截断一个句子。你可以在标点符号上,甚至在单词上拆分句子。

mystring.split(".")
mystring.split("word")