如何在ruby中的方括号内提取内容

时间:2018-01-19 22:48:05

标签: ruby regex

我正在尝试提取方括号内的内容。 到目前为止,我一直在使用它,这有效,但我想知道而不是使用这个删除功能,如果我可以直接使用正则表达式中的东西。

a = "This is such a great day [cool awesome]" 
a[/\[.*?\]/].delete('[]') #=> "cool awesome"

2 个答案:

答案 0 :(得分:7)

几乎。

pygame.init()
display = (800,600)
pygame.display.set_mode(display, DOUBLEBUF|OPENGL)

第一个依赖于提取组而不是完全匹配;第二个利用前瞻和后视来避免最终比赛中的分隔符。

答案 1 :(得分:2)

您可以使用Regexp#=~使用正则表达式执行此操作。

/\[(?<inside_brackets>.+)\]/ =~ a 
  => 25

inside_brackets
  => "cool awesome"

这样你可以将inside_brackets分配给与正则表达式匹配的字符串(如果有的话),我认为它更具可读性。

注意:小心将正则表达式放在左侧。