progs/catastrophic3.py
changeset 474 4bdf0dedd708
parent 420 25bc57b32efa
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/progs/catastrophic3.py	Wed Feb 08 11:01:50 2017 +0000
@@ -0,0 +1,24 @@
+#!/usr/bin/env python
+import re
+import sys
+
+# case of catastrophic backtracking in Python
+#
+# regex: (a?){n} a{n}
+# strings: aa...
+#
+# call with timing as:
+#
+#   > time ./catastrophic.py 20
+
+# counter n given on the command line
+cn = sys.argv[1]
+
+# constructing the regex
+r = '(.*)a(.{%s})bc' % cn
+
+# calling the matching function
+#m = re.match(r, "axaybzbc") 
+m = re.match(r, "a" * 100 + "a" * int(cn) + "bc") 
+
+print m.group(0)