括弧の間の部分文字列を取得する必要があります(括弧を除く):
次のことを試しましたが、括弧と括弧の間の値が返されます。かっこは除外したいと思います。
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