Регулярное выражение для поиска @упоминаний

Используйте /\B@[A-Za-z0-9_]{1,15}/g, чтобы найти все совпадения в тексте. Каждый пример ниже проверен на этом шаблоне, а открыть его можно в Regex Tester с уже загруженными примерами.

Обновлено

/\B@[A-Za-z0-9_]{1,15}/g
Открыть в Regex Tester

Пример текста

Thanks @devpack and @jane_doe! Email me at jane@example.com instead.

2 совпадения

@devpack @jane_doe

Как работает шаблон

ЧастьЗначение
\BСимвол @ не должен следовать за буквой или цифрой, поэтому адреса электронной почты пропускаются
@Знак «собака» (@)
[A-Za-z0-9_]{1,15}Имя из 1–15 букв, цифр или символов подчёркивания (ограничение X/Twitter)

Примеры кода

JavaScript

const matches = text.match(/\B@[A-Za-z0-9_]{1,15}/g) ?? [];

Python

import re

matches = re.findall(r'\B@[A-Za-z0-9_]{1,15}', text)

PHP

preg_match_all('/\B@[A-Za-z0-9_]{1,15}/', $text, $m);
$matches = $m[0];

Примечания и ограничения

Измените {1,15} под правила имён пользователей вашей платформы; Instagram также допускает точки.

Часто задаваемые вопросы

Какое регулярное выражение для поиска @упоминаний?
/\B@[A-Za-z0-9_]{1,15}/g — находит все совпадения в тексте. Таблица выше объясняет, что делает каждая часть.
Работает ли это в Python и PHP?
Да — в примерах кода выше используется тот же шаблон: re в Python и функции preg в PHP.
Как протестировать это регулярное выражение?
Нажмите «Открыть в Regex Tester» — шаблон, флаги и пример текста загрузятся автоматически, а совпадения будут подсвечиваться по мере редактирования.