| author | Christian Urban <christian.urban@kcl.ac.uk> | 
| Sun, 04 Oct 2020 22:20:25 +0100 | |
| changeset 772 | b1a8ef39cb35 | 
| parent 753 | 30ea6b01db46 | 
| child 984 | be2d568644f6 | 
| permissions | -rwxr-xr-x | 
| 753 | 1 | #!/usr/bin/env python3 | 
| 448 | 2 | import re | 
| 3 | import sys | |
| 4 | ||
| 5 | # case of catastrophic backtracking in Python | |
| 6 | # | |
| 7 | # regex: (a*)*b | |
| 8 | # strings: aa...a | |
| 9 | # | |
| 10 | # call with timing as: | |
| 11 | # | |
| 753 | 12 | # time ./catastrophic2.py 20 | 
| 448 | 13 | |
| 14 | # counter n given on the command line | |
| 15 | cn = sys.argv[1] | |
| 16 | ||
| 17 | # calling the matching function | |
| 538 | 18 | s = ("a" * int(cn))
 | 
| 19 | m = re.match('(a*)*b' , s) 
 | |
| 448 | 20 | |
| 753 | 21 | print(s) | 
| 22 | print(m) |