Ruby on rails 检索括号之间的内容

Ruby on rails 检索括号之间的内容,ruby-on-rails,Ruby On Rails,我需要检索括号之间的子字符串(不包括括号): 我尝试了以下方法,但它返回了括号和括号之间的值。我想排除括号 a= "testing (EMI:30384)" a[/\(.*?\)/] ***returns (EMI:30384) 非常感谢您的帮助 \(和\)转义() 将匹配EMI:30384 irb(main):005:0> a= "testing (EMI:30384)" => "testing (EMI:30384)" irb(main):006:0> p a.m

我需要检索括号之间的子字符串(不包括括号):

我尝试了以下方法,但它返回了括号和括号之间的值。我想排除括号

 a= "testing (EMI:30384)"
 a[/\(.*?\)/]   ***returns (EMI:30384)
非常感谢您的帮助

\(
\)
转义()

将匹配EMI:30384

irb(main):005:0> a= "testing (EMI:30384)"
=> "testing (EMI:30384)"
irb(main):006:0> p a.match(/\((.*)\)/)[1]
"EMI:30384"

()

\(
\)
转义()

将匹配EMI:30384

irb(main):005:0> a= "testing (EMI:30384)"
=> "testing (EMI:30384)"
irb(main):006:0> p a.match(/\((.*)\)/)[1]
"EMI:30384"


您需要在表达式中使用括号返回匹配组,使用
\1
访问。这里有更多的解释


您需要在表达式中使用括号返回匹配组,使用
\1
访问。这里有更多的解释



作为捕获组的替代方法,您可以使用“向后看”和“向前看”,但对于您的用例
a[/(?作为捕获组的替代方法,您可以使用“向后看”和“向前看”,但对于您的用例
a[/(?Am get:undefined(?)sequence:/(?您是否尝试过替换:
a.gsub(/[^(+\(/,”).gsub(/([^)]+)\/,'\1')
Pheww,使用a.gsub(/[^(+]+(/,”))。gsub(/([^)]+)/,'\1')似乎完成了任务,我不知道为什么在使用以前的解决方案时它不起作用。我得到了:未定义的(?)序列:/(?您尝试过替换:
a.gsub a.gsub(/+\[^+,”)/,'.gsub]+)\)/“,”\1“
Pheww,使用a.gsub(/[^(+/,”))。gsub(/([^)]+)/,“\1”)似乎可以完成这项工作我不知道为什么在使用以前的解决方案时它不起作用它仍然包括括号更新了代码以更好地显示如何访问匹配的组您必须使用匹配的组感谢所有建议…使用a.gsub(/[^)(]+(/,'').gsub(/([^)]+)/,'\1')似乎完成了这项工作。它仍然包括括号更新了代码以更好地显示如何访问匹配的组您必须使用匹配的组感谢所有建议…使用a.gsub(/([^)]+(/,'')/,'\1')似乎完成了这项工作嗯,这真的很奇怪,但我仍然得到了括号:(抱歉,我修正了索引,它应该是1而不是0嗯,这真的很奇怪,但我仍然得到了括号:(抱歉,我修正了索引,它应该是1而不是0
str = "testing (EMI:30384)"
ptrn = "/\((.*?)\)/"
str.gsub(ptrn, "\1")