author | Christian Urban <christian.urban@kcl.ac.uk> |
Sat, 23 Sep 2023 22:26:52 +0100 | |
changeset 926 | 42ecc3186944 |
parent 753 | d94fdbef1a4f |
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) |