Получить содержимое между скобками из объекта String в Ruby

У меня есть строка вроде этого:

Hi my name is John (aka Johnator).

Каков наилучший способ получить то, что находится между круглыми скобками (включая круглые скобки)?

Ответы

Ответ 1

Вы можете использовать String # [] с регулярным выражением:

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

Ответ 2

Используйте [^()]*? для выбора текста в скобках:

a = "Hi (a(b)c) ((d)"
# => "Hi (a(b)c) ((d)"
a.gsub(/\([^()]*?\)/) { |x| p x[1..-2]; "w"}
"b"
"d"
# => "Hi (awc) (w"

Ответ 3

Попробуйте следующее:

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

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

puts str1

Изменить: не читал о том, чтобы оставить скобки!