Блокировка адреса электронной почты с помощью регулярного выражения не работает

Всем привет,

блокировка постов с помощью регулярных выражений больше не работает. Инструмент проверки RegEx находит этот адрес электронной почты, но пользователи всё ещё могут публиковать адреса электронной почты:

RegEx: (^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)

Это баг?

Огромное спасибо за помощь!

Похоже, проблема в этом регулярном выражении. Кажется, оно сработает только в том случае, если адрес электронной почты опубликован на отдельной строке в редакторе. Вы можете это подтвердить, добавив какой-либо текст, кроме адреса электронной почты, при тестировании регулярного выражения в Discourse. Даже просто добавление пробела перед адресом электронной почты приведёт к сбою.

Вот регулярное выражение, которое должно работать для адресов электронной почты:

\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b

Для справки, я нашёл это регулярное выражение здесь: How to Find or Validate an Email Address.

Спасибо! Это работает. Теперь ещё одна проблема: можно ли использовать это регулярное выражение только для публичных постов? Сейчас невозможно отправить адрес электронной почты и через личные сообщения. Это нежелательное поведение.

Нет, невозможно применять отслеживаемые слова только к публичным постам. При использовании этого регулярного выражения вам нужно будет попросить пользователей вводить адреса электронной почты таким образом, чтобы они не попадали под совпадение с выражением. Возможно, поможет добавление пробела перед символом @.