Получить содержимое между скобками из объекта 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 Изменить: не читал о том, чтобы оставить скобки!
Ответ 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 Изменить: не читал о том, чтобы оставить скобки!