我正在尝试删除标点符号以检查一个短语(或单词)是否是回文,尽管当我有一个带有数字的单词时,它们被删除并且它返回 True 而不是 False。用 sub 清除标点符号后的“1a2”返回“a”,但它仍然应该给我“1a2”。我以为我只选择了标点符号来代替。
import re
def isPalindrome(s):
clean = re.sub("[,.;@#?+^:%-=()!&$]", " ", s)
lower = ''.join([i.lower() for i in clean.split()])
if lower == lower[::-1]:
return True
else:
return False
print(isPalindrome("1a2"))