1. Для удаления ненужных символов в заданной строке вы можете использовать регулярное выражение совместно с методом `re.sub()`. Например, следующий код удаляет все символы, кроме букв и цифр:
```python
import re
def remove_unwanted_chars(string):
return re.sub(r'\W+', '', string)
```
2. Чтобы улучшить функцию `checkForSpam()` и проверять наличие ненужных слов, даже если они содержат дополнительные символы, вы можете использовать регулярные выражения с оператором `re.search()`. Например, следующий код проверяет наличие слова "spam" или "sale" в строке, игнорируя дополнительные символы:
```python
import re
def checkForSpam(string):
if re.search(r'\b(spam|sale)\b', string, re.IGNORECASE):
return True
return False
```
Это регулярное выражение `\b(spam|sale)\b` ищет точное совпадение со словами "spam" или "sale" в строке, игнорируя регистр символов. Опция `re.IGNORECASE` используется для того, чтобы поиск был регистронезависимым.