2012-05-14 21 views

Trả lời

26

Bạn có thể sử dụng String#[] với một biểu thức chính quy:

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

Sẽ không có được chuỗi # []? –

+0

@Beerlington Ha! Tất nhiên. Đã sửa. Nắm bắt tốt. – Cade

+1

những gì bạn nhận được cho '" Hi tên tôi là John (aka Surprise Bat/\\ (*) (*)/\\) "'? – dbenhur

1

Hãy thử điều này:

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

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

puts str1 

Edit: Không đọc về bỏ ngoặc!

1

Sử dụng [^()]*? cho chọn văn bản trong 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" 
Các vấn đề liên quan