Là où je suis en cours d'exécution dans un barrage routier tente de vérifier cetteComment vérifier une adresse Web et rejeter un e-mail avec regex?
(?<http>(http|ftp|https):\/\/)?(?<address>([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?)
tout en rejetant l'expression si elle contient le signe @.
J'ai essayé un certain nombre de variations à ce sujet sans succès. Qu'est-ce qui fonctionnerait si je peux le dire pour m'assurer qu'il n'y a pas @
caractères dedans mais je ne veux pas exiger un caractère en utilisant la syntaxe [^@]
. Alors, comment puis-je dire à regex d'accepter \w
et rejeter @
en même temps. Je ne peux pas faire [\w^@]
au meilleur de ma connaissance.
Ma difficulté est que j'utilise regex remplacer. Ar vous suggérez alors que j'utilise un espace réservé et dix match contre cela après?
Quelques exemples de texte valide et invalide seraient utiles –
www.cnn.com est une adresse valide [email protected] n'est pas et ne devrait pas être modifié. – Middletone
Même si vous ne souhaitez pas autoriser le nom d'utilisateur @ URL, http://www.example.com/[email protected] est toujours une adresse valide. La validation d'une adresse e-mail ou d'une URL est très difficile à faire correctement dans regex; permettre à un nom d'hôte nu de fonctionner comme une URL le rend encore moins possible. – bobince