| changeset 155 | eccf17f56922 | 
| child 156 | 6b9542fc9dc4 | 
| 154:e7f8e3d2e09a | 155:eccf17f56922 | 
|---|---|
1 #!/usr/bin/env python  | 
|
2 import re  | 
|
3 import sys  | 
|
4  | 
|
5 # case of catastrophic backtracking in Python  | 
|
6 #  | 
|
7 # regex: (a?){n} a{n}  | 
|
8 # strings: aa...  | 
|
9 #  | 
|
10 # call with timing as:  | 
|
11 #  | 
|
12 # > time ./catastrophic.py 20  | 
|
13  | 
|
14 # counter n given on the command line  | 
|
15 cn = sys.argv[1]  | 
|
16  | 
|
17 # constructing the regex  | 
|
18 r1 = '((a?){%s})' % cn  | 
|
19 r2 = 'a{%s}' % cn  | 
|
20  | 
|
21 # calling the matching function  | 
|
22 m = re.match(r1 + r2 , "a" * int(cn))  | 
|
23  | 
|
24 print m.group(0)  |