2012-05-14 27 views
15

でStringオブジェクトから括弧の間にコンテンツを取得します。私はこのような文字列を持っているRubyの

括弧(括弧を含む)の間にあるものを取得する最も良い方法は何ですか?これを試してみてください

a = "Hi my name is John (aka Johnator)" 
a[/\(.*?\)/] 
# => "(aka Johnator)" 

答えて

26

あなたは正規表現でString#[]を使用することができます!

+1

は、それは文字列#[]と思いませんか? –

+0

@Beerlington Ha!もちろん。一定。良いキャッチ。 – Cade

+1

あなたは ''こんにちは私の名前はジョン(別名サプライズバット/ \\(*)(*)/ \\) "'ですか? – dbenhur

1

str1 = "" 
text = "Hi my name is John (aka Johnator)" 

text.sub(/(\(.*?\))/) { str1 = $1 } 

puts str1 

編集:括弧を残しについては読んでいない

1

Parentheseの中に選択したテキストのために使用[^()]*?

irb(main):019:0> a = "Hi (a(b)c) ((d)" 
=> "Hi (a(b)c) ((d)" 
irb(main):021:0> a.gsub(/\([^()]*?\)/) { |x| p x[1..-2]; "w"} 
"b" 
"d" 
=> "Hi (awc) (w" 
関連する問題