获取Ruby中String对象的括号之间的内容

时间:2012-05-14 23:12:37

标签: ruby regex string

我有一个这样的字符串:

Hi my name is John (aka Johnator)

获取括号之间(包括括号)之间的最佳方法是什么?

3 个答案:

答案 0 :(得分:27)

您可以将String#[]与正则表达式一起使用:

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

答案 1 :(得分:1)

试试这个:

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

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

puts str1

编辑:没看过关于留下括号的内容!

答案 2 :(得分:1)

使用[^()]*?括号中的选择文字:

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"