diff -r 923b946347e6 -r e66bd5c563eb progs/catastrophic.rb --- a/progs/catastrophic.rb Mon Jul 27 01:55:05 2020 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -# A case of catastrophic backtracking in Ruby -#--------------------------------------------- -# example provided by Daniel Baldwin -# -# -# regex: (a?){n} a{n} -# strings: aa... -# -# run on the command line with: -# -# $> ruby catastrophic.rb -# - -nums = (1..1000) - -#iterate through the nums 1-1000 -nums.each do |i| - - start_time = Time.now - string = "a" * i - - #create a new regular expression based on current value of i - re_str = "a?" * i + "+" + "a" * i - re = Regexp.new(re_str) - - re.match(string) - - #if re.match(string) - # puts "matched string a * #{i} with regex #{re}" - #else - # puts "unmatched string a * #{i} with regex #{re}" - #end - - puts "#{i} %.5f" % (Time.now - start_time) -end