https://learnprogramming.in.net/advanced-string-handling-in-python/