Domanda

È possibile eseguire la negazione delle stringhe nelle espressioni regolari?Devo abbinare tutte le stringhe che non contengono la stringa "..".So che puoi usare ^[^\.]*$ per abbinare tutte le stringhe che non contengono "." ma devo abbinare più di un carattere.So che potrei semplicemente abbinare una stringa contenente ".." e quindi negare il valore restituito della corrispondenza per ottenere lo stesso risultato ma mi chiedevo solo se fosse possibile.

È stato utile?

Soluzione

È possibile utilizzare lookaheads negativi:

^(?!.*\.\.).*$

Questo fa sì che l'espressione di non corrispondere se si può trovare una sequenza di due periodi in qualsiasi punto della stringa.

Altri suggerimenti

^(?:(?!\.\.).)*$

corrisponderà solo se non ci sono due punti consecutivi in ​​nessun punto della stringa.

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