Regex para encontrar @menções

Use /\B@[A-Za-z0-9_]{1,15}/g para encontrar todas as correspondências em um texto. Cada exemplo abaixo foi testado com o padrão, e você pode abri-lo no Testador de Regex com os exemplos já carregados.

Atualizado em

/\B@[A-Za-z0-9_]{1,15}/g
Abrir no Testador de Regex

Texto de exemplo

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

2 correspondências

@devpack @jane_doe

Como o padrão funciona

ParteSignificado
\BO @ não pode vir depois de uma letra ou número, então endereços de e-mail são ignorados
@O símbolo de arroba
[A-Za-z0-9_]{1,15}Um identificador de 1 a 15 letras, números ou underlines (o limite do X/Twitter)

Exemplos de código

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];

Observações e limitações

Altere {1,15} para as regras de identificador da sua plataforma; o Instagram também permite pontos.

Perguntas frequentes

Qual é a regex para encontrar @menções?
/\B@[A-Za-z0-9_]{1,15}/g — ela encontra todas as correspondências em um texto. Veja a tabela acima para entender o que cada parte faz.
Funciona em Python e PHP?
Sim — os exemplos de código acima usam o mesmo padrão com re em Python e funções preg em PHP.
Como testo essa regex?
Clique em “Abrir no Testador de Regex” — o padrão, as flags e o texto de exemplo são carregados automaticamente, e as correspondências são destacadas conforme você edita.