Tôi có chuỗi như sau:Lấy nội dung giữa dấu ngoặc đơn từ đối tượng String trong Ruby
Hi my name is John (aka Johnator)
.
Cách tốt nhất để lấy nội dung nằm giữa dấu ngoặc đơn (bao gồm dấu ngoặc đơn) là gì?
Tôi có chuỗi như sau:Lấy nội dung giữa dấu ngoặc đơn từ đối tượng String trong Ruby
Hi my name is John (aka Johnator)
.
Cách tốt nhất để lấy nội dung nằm giữa dấu ngoặc đơn (bao gồm dấu ngoặc đơn) là gì?
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)"
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!
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"
Sẽ không có được chuỗi # []? –
@Beerlington Ha! Tất nhiên. Đã sửa. Nắm bắt tốt. – Cade
những gì bạn nhận được cho '" Hi tên tôi là John (aka Surprise Bat/\\ (*) (*)/\\) "'? – dbenhur