sur Twitter lorsque vous écrivez @moustafa va changer pour <a href='user/moustafa'>@moustafa</a>
maintenant je veux faire la même chose quand @moustafa écriture + espace son changement @moustafa neExpression régulière pour convertir les noms d'utilisateur en liens tels que Twitter ne
Répondre
Une expression régulière qui pourrait être utilisée (volée sans vergogne du @anywhere javascript library mentionné dans une autre réponse) serait:
\B\@([a-zA-Z0-9_]{1,20})
Ceci recherche une limite non-mot (pour empêcher [email protected]
[c.-à-d. emails] de matching) suivi de @
, puis entre un et 20 caractères (inclus) dans cette classe de caractères. Bien sûr, le tout-sauf-espace route, comme dans d'autres réponses; cela dépend beaucoup des valeurs qui doivent être (dis) autorisées dans la partie label du @label
.
Pour utiliser l'expression rationnelle en surbrillance dans PHP, quelque chose comme ce qui suit pourrait être utilisé pour remplacer une chaîne $subject
.
$subject = 'Hello, @moustafa how are you today?';
echo preg_replace('/\B\@([a-zA-Z0-9_]{1,20})/', '<a href="user/$1">$0</a>', $subject);
Les sorties au-dessus quelque chose comme:
Hello, <a href="user/moustafa">@moustafa</a> how are you today?
Vous recherchez une expression régulière correspondant à @username, où le nom d'utilisateur n'a pas d'espace? Vous pouvez utiliser:
@[^ ]+
Si vous connaissez les caractères autorisés dans un nom d'utilisateur, vous pouvez être plus précis, comme si elles doivent être alphanumériques:
@[A-Za-z0-9]+
pouvez-vous le câbler avec php –
Pourquoi ne pas utiliser le @anywhere javascript library que Twitter ont récemment libéré?
qu'est-ce que cela signifie –
C'est une bibliothèque javascript que vous exécutez sur la page Web pour faire des choses comme vous demandez. –
Les expressions régulières dans PHP sont juste des chaînes qui commencent et se terminent par le même caractère. Par convention ce caractère est/
vous pouvez donc utiliser quelque chose comme ceci comme argument à l'une des nombreuses fonctions d'expressions régulières php:
Pas d'espace:
"/[^ ]+/"
Alphanumeric seulement:
"/[A-Za-z0-9]+/"
Il existe plusieurs bibliothèques qui effectuent cette sélection et la liaison pour vous. Actuellement, je connais des bibliothèques Java, Ruby et PHP sous le compte Github de mzsanford: http://github.com/mzsanford/twitter-text-rb
- 1. expression régulière pour supprimer les liens
- 2. Expression régulière pour les liens youtube
- 3. Expression régulière pour remplacer les liens avec juste leurs étiquettes
- 4. expression régulière pour analyser des liens html
- 5. Expression régulière pour changer les liens dans Dreamweaver
- 6. Python expression régulière pour les noms de domaine
- 7. Comment convertir cette expression régulière en Python
- 8. Expression régulière pour trouver des noms de classe en HTML
- 9. Que signifie cette expression régulière?
- 10. expression régulière pour convertir des balises WordPress en HTML
- 11. Expression régulière pour convertir la marque en HTML
- 12. Expression régulière pour trouver une expression régulière?
- 13. Expression régulière pour parser hashtags en Java
- 14. Expression régulière pour les nombres
- 15. Expression régulière pour les fonctions correspondant à
- 16. Python: convertir une chaîne de format en expression régulière
- 17. Que fait cette expression régulière?
- 18. Expression régulière en Javascript pour délimiter les mots
- 19. Expression régulière conditionnelle en Java?
- 20. Expression régulière en C#
- 21. Expression régulière pour l'URL
- 22. Expression régulière pour vérification
- 23. Expression régulière pour extraire HREF
- 24. PHP: Comment convertir une expression régulière en exemple?
- 25. Expression régulière pour asp.net
- 26. Expression régulière pour l'hôte
- 27. Expression régulière pour constante
- 28. Expression régulière pour les numéros arabes
- 29. Besoin d'une bonne expression rationnelle pour convertir les URL en liens mais laisser les liens existants seuls
- 30. Expression régulière en Flash
Ils le modifient réellement à @moustafa. – abraham