以下は、このような関数が行を取り、電子メールアドレスに似ていないすべての単語を削除する例です。

`` python
def filter_emails（テキスト：str） - > str：
    return "" .join（re.findall（r "\ b [a-za-z0 _.-]+@[a-za-z0 _.-]+\。[a-za-z] {2、5 } \ b "、テキスト））
`` `

「類似性」を少し強化することを許可しました。最初の2つの部分では、ラテン文字、数字、マイナス、強調、ポイントが許可され、上位レベルのドメインは2〜5文字の長さによって制限されます。
これは、この関数に相当するより冗長なものです。

`` python
def filter_emails_verbose（テキスト：str） - > str：
    パターン= r "" "
        \ b＃単語の境界
        [A-ZA-Z0-9 _.-]+＃ユーザー名
        @ ＃ 犬
        [a-za-z0-9 _.-]+＃ドメイン1、2、...レベル
        \。＃ドット
        [a-za-z] {2.5}＃上位レベルのドメイン
        \ b＃単語の境界
    "" "
    regex = re.compile（pattern、re.verbose）
    matches = regex.findall（テキスト）
    return ".join（matches）
`` `

正規表現のより正確なバージョンは「もう少し」に見えるので、この例を教育目的でのみ使用することを計画してください：https://stackoveerflow.com/a/201378。
Вот пример такой функции, принимающей строку и удаляющей из неё все слова, не похожие на адрес электронной почты.

```python
def filter_emails(text: str) -> str:
    return " ".join(re.findall(r"\b[A-Za-z0-9_.-]+@[A-Za-z0-9_.-]+\.[A-Za-z]{2,5}\b", text))
```

Я позволила себе немного усилить «похожесть»: в первых двух частях допускаются латинские буквы, цифры, минусы, подчёркивания и точки, а домен верхнего уровня ограничен длиной от 2 до 5 символов.
Вот более многословный эквивалент этой функции.

```python
def filter_emails_verbose(text: str) -> str:
    pattern = r"""
        \b               # граница слова
        [A-Za-z0-9_.-]+  # имя пользователя
        @                # собачка
        [A-Za-z0-9_.-]+  # домены 1, 2, … уровня
        \.               # точка
        [A-Za-z]{2,5}    # домен верхнего уровня
        \b               # граница слова
    """
    regex = re.compile(pattern, re.VERBOSE)
    matches = regex.findall(text)
    return " ".join(matches)
```

Надеюсь, что вы планируете использовать этот пример лишь в учебных целях, поскольку более точный вариант регулярного выражения выглядит «немного» более сложно: https://stackoverflow.com/a/201378.