How to check if a string is a palindrome ignoring case and non-alphanumeric characters in Python

1 Answer

0 votes
import re

def is_palindrome(s):
    # Remove non-alphanumeric characters and convert to lowercase
    normalized = re.sub(r'[^a-zA-Z0-9]', '', s).lower()
    print(normalized)
    
    # Check if the string is equal to its reverse
    return normalized == normalized[::-1]
    

s = "+^-Ab#c!D 50...#  05*()dcB[]A##@!$"
print(is_palindrome(s))



'''
run:

abcd5005dcba
True

'''

 



answered Aug 9, 2025 by avibootz
...