Vi que já houve alguém fazendo essa pergunta, mas a resposta não funcionou no meu caso. Eu tenho um reg exp estruturado como abaixo:
/regexp/(?i:mktg)
para evitar condições de maiúsculas e minúsculas de caracteres. Precisarei construir esta expressão contendo "mktg", mas não contendo as palavras "round"E"SMP" em qualquer caixa de caracteres. Alguém disposto a ajudar? Eu já tentei /regexp/([^?i:SMP])
e /regexp/^((?!SMP).)*$
, mas eles ainda puxarão essa corda.
obrigado,
valeria
Responder1
AFAIK isso deve funcionar:
^(?i)(?=.*mktg)((?!round|smp).)*$
Explicação:
^ : beginning of line
(?i) : case insensitive
(?= : start lookahead, zero-length assertion, make sure we have
.* : 0 or more any character
mktg : literally "mktg"
) : end lookahead
( : start group
(?! : start negative lookahead, zero-length assertion, make we DON'T have:
round : literally "round"
| : OR
smp : literally "smp"
) : end lookahead
. : any character
)* : group must be repeated 0 or more times
$ : end of line
Casos de teste:
Match: mktg
Match: abc mktg xyz
No match: round mktg
No match: SmP mktg
No match: SPM ROUND