Mam ciąg znaków podobny do:Pobierz treść między nawiasami z obiektu String w Ruby
Hi my name is John (aka Johnator)
.
Jaki jest najlepszy sposób uzyskania tego, co znajduje się między nawiasami (w tym nawiasami)?
Mam ciąg znaków podobny do:Pobierz treść między nawiasami z obiektu String w Ruby
Hi my name is John (aka Johnator)
.
Jaki jest najlepszy sposób uzyskania tego, co znajduje się między nawiasami (w tym nawiasami)?
Można użyć String#[] z wyrażenia regularnego:
a = "Hi my name is John (aka Johnator)"
a[/\(.*?\)/]
# => "(aka Johnator)"
Spróbuj tego:
str1 = ""
text = "Hi my name is John (aka Johnator)"
text.sub(/(\(.*?\))/) { str1 = $1 }
puts str1
Edit: Nie czytać o opuszczeniu nawiasu!
Zastosowanie [^()]*?
do zaznaczania tekstu w 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"
nie byłoby String # []? –
@Beerlington Ha! Oczywiście. Naprawiony. Dobry połów. – Cade
co otrzymasz dla '" Cześć, nazywam się John (aka Surprise Bat/\\ (*) (*)/\\) "'? – dbenhur