我需要检索括号之间的子字符串(不包括括号):
我尝试了以下操作,但它返回了括号之间的值和括号。我想排除括号。
a= "testing (EMI:30384)"
a[/\(.*?\)/] ***returns (EMI:30384)
非常感谢您的帮助
我需要检索括号之间的子字符串(不包括括号):
我尝试了以下操作,但它返回了括号之间的值和括号。我想排除括号。
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"
您需要在表达式中使用括号返回匹配组,使用\1
. 更多解释在这里http://www.railsrocket.com/regular-expressions-in-ruby-and-rails
str = "testing (EMI:30384)"
ptrn = "/\((.*?)\)/"
str.gsub(ptrn, "\1")
作为捕获组的替代方法,您可以使用向后看和向前看,但对于您的用例a[/(?<=\().*(?=\))/]
给出的确切信息来说,这可能太复杂了EMI:30384