updated
authorChristian Urban <christian.urban@kcl.ac.uk>
Tue, 18 Nov 2025 11:33:20 +0000
changeset 1027 dadb5a94728d
parent 1026 ee39fd6df150
child 1028 803d5ece1c07
updated
progs/catastrophic/catastrophic.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/progs/catastrophic/catastrophic.py	Tue Nov 18 11:33:20 2025 +0000
@@ -0,0 +1,22 @@
+#!/usr/bin/env python3
+import re
+import sys
+
+# case of catastrophic backtracking in Python
+#
+# regex: (a*)*b
+# strings: aa...a
+#
+# call with timing as:
+#
+#    time ./catastrophic2.py 20
+
+# counter n given on the command line
+cn = sys.argv[1]
+
+# calling the matching function
+s = ("a" * int(cn))
+m = re.fullmatch('(a*)*b' , s) 
+
+print(s)
+print(bool(m))