J'ai écrit l'expression régulière suivante /^[A-Za-z0-9-_\s]*$/
en PHP qui permet les nombres, les lettres, les espaces, les tirets et les traits de soulignement. Je veux afficher ces correspondances qui ne sont pas valables contre la regex i.e "Mon nom est Blahblah !!!" devrait me donner "!!!" sortie.PHP trouver des mots qui ne sont pas en regex
Répondre
Utilisez le symbole caret dans la classe de caractères pour inverser le match et enlever le début (^
) et à la fin ($
) caractères:
/[^A-Za-z0-9-_\s]+/
http://php-regex.blogspot.com/2008/01/how-to-negate-character-class.html
Vous voulez vous débarrasser de ces ancres, et changer le '*' en '+'. L'OP essaye d'arracher des allumettes hors de la corde, ne correspond pas à l'ensemble. –
@Alan: oui, les ancres de début et de fin ont disparu. Merci pour le conseil sur le '+', édité. –
Si vous remplacez tous les matchs avec les Chaîne vide puis vous obtiendrez les pièces non correspondantes de retour:
preg_replace('/[A-Za-z0-9-_\s]+/', '', $string)
Cela fonctionnera pour toute regex arbitraire, mais pour votre regex spécifique, la solution d'Andy est plus simple.
Notez que j'ai supprimé les ancres ^
et $
pour rendre ce travail.
Vous devriez changer le '*' en '+'. Sinon, vous allez perdre beaucoup de temps à ne rien remplacer par rien. ;) –
preg_replace("/^[A-Za-z0-9-_\s]*$/","","My Name is Blahblah!!!") // Output: "!!!"
Ou, si vous voulez que tous les groupes d'entre eux
preg_split("/^[A-Za-z0-9-_\s]*$/","","My Name is Blahblah!!!")
Vous devez mettre le hiphen - au début ou à la fin de la classe de caractères ou y échapper, de sorte que votre regex serait:
/[^-A-Za-z0-9_\s]+/
ou
/[^A-Za-z0-9_\s-]+/
ou
/[^A-Za-z0-9\-_\s]+/
- 1. regex en php pour trouver des mots
- 2. php regex - ne peut pas trouver l'erreur
- 3. Problème Regex utilisant l'expression rationnelle ICU pour trouver des nombres qui ne sont pas entre parenthèses
- 4. PHP: regex preg_match ne pas trouver des chaînes correctes
- 5. Comment trouver des enregistrements qui ne sont pas joints?
- 6. Trouver des articles qui ne sont pas [Serializable]
- 7. débogueurs php qui ne sont pas gonflés
- 8. Trouver tous les mots qui contiennent des caractères en UNIX
- 9. regex: match-espaces blancs qui ne sont pas enfermés dans []
- 10. REGEX: fractionnement par des virgules qui ne sont pas entre guillemets, permettant des guillemets échappés
- 11. Trouver des mots strictement à partir de $, Regex C#
- 12. Sélectionnez des éléments qui ne sont pas des mots spécifiques dans leur attribut class
- 13. Comment trouver les fonctions qui ne sont pas exécutées?
- 14. Regex pour trouver des mots-clés dans l'URL
- 15. Regex: comment arrêter le match sur certains mots qui ne peuvent pas exister
- 16. Trouver des expressions/mots entre HTML en utilisant PHP
- 17. PHP regex - trouver et remplacer
- 18. Linq2SQL ou SQL: trouver des dates qui ne sont pas des événements
- 19. Trouver des mots entre 2 mots?
- 20. motif regex pour correspondre uniquement aux chaînes qui ne contiennent pas d'espaces PHP
- 21. regex ne fonctionne pas
- 22. Regex pour trouver les mots qui commencent par un caractère spécifique
- 23. Trouver et stocker (Regex, PHP)
- 24. Recevez tweets qui ne sont pas mentionne
- 25. Utilisation de regex pour trouver des mots à l'intérieur du texte en C#
- 26. Énumération des collections qui ne sont pas intrinsèquement IEnumerable?
- 27. Regex PHP supprimer certains mots clés
- 28. Comment utiliser Regex pour exclure des mots?
- 29. Regex pour faire correspondre les liens qui ne sont pas déjà balisés
- 30. Quand les mots clés C# ne sont-ils pas réservés?
@ jason4: avez-vous besoin d'aide supplémentaire à cette question? :-) –
Merci Andy E, carotte travaille toujours pour moi :) – Maximus