negação string usando expressões regulares
-
18-09-2019 - |
Pergunta
É possível fazer negação corda em expressões regulares? Eu preciso corresponder a todas as strings que não contêm a ".."
string. Eu sei que você pode usar ^[^\.]*$
para corresponder a todas as strings que não contêm "."
mas eu preciso para combinar mais de um personagem. Eu sei que eu poderia simplesmente encontrar uma string contendo ".."
e depois negar o valor de retorno do jogo para atingir o mesmo resultado, mas eu só queria saber se era possível.
Solução
Você pode usar lookaheads negativos:
^(?!.*\.\.).*$
Isso faz com que a expressão não corresponder se pode encontrar uma seqüência de dois períodos em qualquer lugar do string.
Outras dicas
^(?:(?!\.\.).)*$
só irá corresponder se não houver dois pontos consecutivos em qualquer lugar do string.