Come posso verificare un indirizzo Web e rifiutare un'e-mail con regex?
-
06-07-2019 - |
Domanda
Il punto in cui mi imbatto in un blocco stradale sta cercando di verificarlo
(?<http>(http|ftp|https):\/\/)?(?<address>([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?)
rifiutando l'espressione se contiene il segno @.
Ho provato diverse varianti su questo senza successo.
Ciò che funzionerebbe sarebbe se potessi dirlo per assicurarmi che non ci siano caratteri @
ma non voglio richiedere un carattere usando [^ @]
sintassi. Quindi, come posso dire a regex di accettare \ w
e rifiutare @
allo stesso tempo. Non posso fare [\ w ^ @]
per quanto ne so.
La mia difficoltà è che sto usando regex sostituisci. Mi stai suggerendo di usare un segnaposto e dieci partite in seguito?
Soluzione
Non devi mettere tutto in un'unica regex. Ad esempio, potresti confrontare il regex esistente, quindi verificare con un regex secondario che la stringa non abbia un segno @.
Altri suggerimenti
Sono d'accordo con Ned. Usa due espressioni regolari. Puoi ottenerli da diverse fonti, tra cui http://regexlib.com/