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?

È stato utile?

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/

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top