bruce: > valid_str = strip(invalid_str) > where 'strip' removes/strips out the invalid chars...
This isn't short but it is fast: import string valid_chars = string.lowercase + string.uppercase + \ string.digits + """|!'\\"£$%&/()=?^*é§_:;>+,.-<\n \t""" all_chars = "".join(map( chr, range(256)) ) comp_valid_chars = "".join( set(all_chars).difference(valid_chars) ) print "test string".translate(all_chars, comp_valid_chars) Shorter and a bit slower alternative: import string valid_chars_set = set(string.lowercase + string.uppercase + string.digits + """|!'\\"£$%&/()=?^*é§_:;>+,.-<\n \t""") print filter(lambda c: c in valid_chars_set, "test string") You can add the chars you want to the string of accepted ones. Bye, bearophile -- http://mail.python.org/mailman/listinfo/python-list