4

我只想将字符串中两个特定点之间的文本保存到变量中。文本如下所示:

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

我想我必须使用扫描或切片,但不完全确定如何在不抓取文本前后的正则表达式标识符的情况下仅提取文本。我试过这个,但没有奏效:

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

4 回答 4

4

这应该做的工作

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

注意:

  • .slice别名[]
  • 您转义的所有字符都不是您使用它们的特殊正则表达式字符
  • 您可以“分组”您想要保留的位()
  • .slice/[]取第二个参数来选择匹配的组
于 2012-05-22T16:24:20.860 回答
2
your_text = '"content"=>"The text I want to save to a variable"'
/"content"=>"(?<hooray>.*)"/ =~ your_text

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

于 2012-05-22T16:28:26.120 回答
1

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

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

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

于 2012-05-22T16:21:48.593 回答
1

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

mystring.split(".")
mystring.split("word")
于 2012-05-22T16:24:10.693 回答