import sys, re data = sys.stdin.read() # sys.stderr.write("JMD "+data) m = re.compile(r'^(.*)(.*?)(.*)$').match(data) if not m: print data sys.exit(0) pre = m.group(1) cont = m.group(2) post = m.group(3) for pattern,replacement in [ (re.compile(r'^\S+:\s*'), ''), (re.compile(r'(https?:\S+?)([-\'\"\.\;\:\,]*)(?:\s|$)'), r'\1\2 '), (re.compile(r'\@(\S+?)([-\'\"\.\;\:\,]*)(?:\s|$)'), r'@\1\2 ') ]: cont=pattern.sub(replacement,cont) print pre, cont, post