aboutsummaryrefslogtreecommitdiff
path: root/challenge-029/paulo-custodio/python/ch-1.py
blob: 11e598d80cd631c9f73dd2470e583127bae98ad3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/python3

# Challenge 029

# Task #1
# Write a script to demonstrate brace expansion. For example, script would take
# command line argument Perl {Daily,Weekly,Monthly,Yearly} Challenge and should
# expand it and print like below:
#
#   Perl Daily Challenge
#   Perl Weekly Challenge
#   Perl Monthly Challenge
#   Perl Yearly Challenge

import sys
import re

def print_expanded(text):
    mo = re.search(r"[{]([^{}]*?)[}]", text)
    if mo:
        before = text[:mo.start(0)]
        expand = mo.group(1)
        after  = text[mo.end(0):]

        for arg in expand.split(","):
            print_expanded(before+arg+after)
    else:
        print(text)

print_expanded(" ".join(sys.argv[1:]))