Quelqu'un peut-il me fournir une expression régulière pour correspondre à un terme de recherche qui n'est pas précédé ou suivi par [a-z]
et [A-Z]
? (D'autres caractères sont OK.) Si, lors de la recherche de key
, je ne veux pas keyboard
dans mes résultats de recherche, mais est correct.Expression régulière pour les termes de recherche non précédés ou suivis de [a-z] et [A-Z]
Répondre
Si vous utilisez Perl, ce que vous avez besoin est \b
, alias "limite de mot":
m/\bkey\b/
\bkey\b
devrait faire ce que vous voulez.
\b
est une limite de mot
/apprend quelque chose de nouveau –
Est-ce que ceci trouvera "_word_" ou "word4"? Les underscores et les nombres sont-ils des limites de mots? +1 ou la réponse de Pax Diablo, qui répond exactement à la question posée. –
Puisque vous ne spécifiez pas ce moteur regex que vous utilisez, je suppose une base de référence, auquel cas « [^A-Za-z]key[^A-Za-z]
» serait suffisant. Si vous voulez également attraper la chaîne au début et à la fin de la ligne, vous devrez également utiliser "^key[^A-Aa-z]
" et "[^A-Aa-z]key$
".
C'est la solution qui fonctionne dans une requête mysql: WHERE colonne REGEXP '[^ A-Za-z] clé [^ A-Za-z]', le mot boundary \ b ne fonctionne pas dans mysql. Merci! – Overbeeke
Très apprécié - Je n'ai pas réalisé à partir de votre question que vous parliez de mysql. Maintenant tout ce que vous avez à faire est d'accepter la réponse :-). – paxdiablo
Une question cependant. Un personnage est maintenant attendu avant la clé. Si la valeur de ma colonne commence par key alors la regex ne le trouve pas. Comment puis-je le rendre facultatif? – Overbeeke
Ou plus concise [^\w]key[^\w]
Notez qu'en demandant un caractère non-mot avant et après "key", cela ne correspondra pas à "key" au début ou à la fin de la ligne. (L'absence d'un personnage n'est pas un caractère non-mot.) –
Cette question est taggés avec mysql Je suppose que vous utilisez MySQL regexps. Alors [[:<:]]key[[:>:]]
est ce que vous voulez. Voir le documentation at dev.mysql.com pour plus de détails.
Pas besoin de les OR
s si vous le faites comme ceci:
(^|[^A-Za-z])key([^A-Za-z]|$)
- 1. AZ ASP.NET à partir SiteMap
- 2. Htaccess, mod_rewrite et expression régulière pour les caractères alphanumériques et les tirets uniquement
- 3. expression régulière pour les caractères non consécutifs
- 4. Filtrer une liste avec des onglets AZ (explication de l'image)
- 5. Regex pour az, hypen (-) et Ë Ì ö dans Zend Route Regex
- 6. Expression régulière - exclure non nécessaire
- 7. Expression régulière pour trouver une expression régulière?
- 8. expression régulière pour scinder la phrase de recherche
- 9. Exclusif ou en expression régulière
- 10. Regex pour les espaces correspondant non précédés par des virgules
- 11. Expression régulière pour l'hôte
- 12. requête MySQL pour tous les termes de recherche dans l'index
- 13. Expression régulière pour les objets HTML
- 14. Expression régulière Java pour identifier les chaînes avec plus de chiffres que les non-chiffres
- 15. Expression régulière pour les fichiers cachés sous unix
- 16. Expression régulière pour supprimer les chaînes HTML
- 17. expression régulière pour supprimer les liens
- 18. expression régulière pour mot de passe
- 19. expression régulière "contient" une autre expression régulière
- 20. python expression régulière pour retweets
- 21. Expression régulière pour analyser les messages d'erreur du studio visuel
- 22. Expression régulière pour catégoriser les parties d'une adresse de service?
- 23. Débutant: Expression régulière pour l'URL
- 24. Expression régulière remplacer
- 25. Expression régulière
- 26. Expression régulière question de regroupement
- 27. Besoin d'une expression régulière pour cette chaîne
- 28. Comment effectuer une recherche multiligne en utilisant une expression régulière?
- 29. Fonction pour trouver et renvoyer la correspondance d'une expression régulière
- 30. C# Expression régulière pour faire correspondre les lettres, les chiffres et les traits de soulignement
Je vais l'utiliser dans une requête MySQL. – Overbeeke