# (c) Peter Bengtsson
# see http://www.peterbe.com/plog/filename-splitter
import re

files = '''
Error-04August2005.log 
ITPt.rtf
Image69.png
Image70.png
IssueTracker.py
IssueUserFolder.py
Request_NameError.txt
STATSPAG.jpg
Traceback_NameError.txt
addhrefs-0.8-dev.tgz
ajax_bug.bmp
catalogEntries.png
demo-icatalog.png
doc2.htm
dummy.dtml
1027_Sample_Chapter.pdf
10erBarcode.jpg
11111.txt
25.gif
60recicla.gif
DQS_certified.gif
Innovations in Behavioral Marketing and Electronic Commerce.doc
Jason Powers Resume(1).odt
Jason Powers Resume1.odt
Jessica Biel 01.jpg
LICENSE.txt
NOTEPAD.EXE
New Text Document.txt
QCDPlayer.exe
Sample word doc.doc
Template.java
Thumbs.db
WSAD5 Book.pdf
'''
#files='Traceback_NameError.txt'

files = [x.strip() for x in files.strip().splitlines() if x.strip()]
files = [x.split('/')[-1] for x in files]

camel_regex = re.compile('([A-Z][a-z0-9]+)')

def _cleanSplit(splitted):
    splitted = [x for x in splitted if len(x) > 1 or x.isdigit()]
    for i in range(len(splitted)):
        if splitted[i][0] in ('.','-','_'):
            splitted[i]=splitted[i][1:]
        if splitted[i][-1] in ('.','-','_'):
            splitted[i]=splitted[i][:-1]
    return splitted
    
def _uniqify(seq):
    seen={}
    result = []
    for item in seq:
        if seen.has_key(item): continue
        seen[item]=1
        result.append(item)
    return result
        
for file in files:
    keys = [file]
    keys.extend(_cleanSplit(camel_regex.split(file)))
    for point in ('\.','_','-','\d+'):
        keys.extend(_cleanSplit(re.compile('(%s)'%point).split(file)))
    
    print _uniqify(keys)