RosettaCodeData/Task/Balanced-brackets/Ruby/balanced-brackets.rb

18 lines
467 B
Ruby
Raw Permalink Normal View History

2013-04-10 12:38:42 -07:00
re = /\A # beginning of string
(?<bb> # begin capture group <bb>
\[ # literal [
\g<bb>* # zero or more <bb>
\] # literal ]
)* # end group, zero or more such groups
\z/x # end of string
2013-10-27 22:24:23 +00:00
10.times do |i|
s = (%w{[ ]} * i).shuffle.join
puts (s =~ re ? " OK: " : "bad: ") + s
2013-04-10 12:38:42 -07:00
end
2013-10-27 22:24:23 +00:00
["[[]", "[]]", "a[ letters[-1] ].xyz[0]"].each do |s|
t = s.gsub(/[^\[\]]/, "")
puts (t =~ re ? " OK: " : "bad: ") + s
2013-04-10 12:38:42 -07:00
end