Pergunta

Eu estou olhando para coincidir com a sintaxe Twitter com um regex.

Como posso chegar a qualquer coisa que é "@______" isto é, começa com um símbolo @, e é seguido por sem espaços, letras e números apenas até o final da palavra? (Para tweeters, quero corresponder o nome de alguém em uma resposta)

Foi útil?

Solução

Vá para

/@(\w+)/

Para obter o nome de correspondência extraído bem.

Outras dicas

@\w+

Essa simples?

Deve-se notar que o Twitter não permite mais que nomes de usuários mais de 15 caracteres, então você também pode combinar com:

@\w{1,15}

Existem ainda, aparentemente, algumas pessoas com nomes de usuários com mais de 15 personagens, mas o teste em 15 seria melhor se você deseja excluir provável falsos positivos.

Existem aparentemente sem regras sobre se sublinhados podem ser usados ??no início ou no final de nomes de usuário, vários sublinhados, etc., e há contas com nomes de uma letra, assim como alguém com o nome de usuário "_".

@[\d\w]+

\ d para um personagem dígitos
\ W por um caractere de palavra
[] Para designar uma classe de caracteres
+ Para representar mais de uma instância da classe de caracteres

Note que esses especificadores de caracteres de palavras e dígitos são dependentes do idioma. Verifique a especificação da linguagem para ter certeza.

Há uma extensa API para saber como obter nomes do twitter válidos, menciona, etc. A versão Java da API fornecida pelo Twitter podem ser encontrados no github twitter-text-java . Você pode querer dar uma olhada para ver se isso é algo que você pode usar.

Eu usei-o para validar nomes Twitter e ele funciona muito bem.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top