Ich habe gesehen, dass diese Frage schon einmal jemand gestellt hat, aber die Antwort hat in meinem Fall nicht funktioniert. Ich habe einen Reg-Exp, der wie folgt strukturiert ist:
/regexp/(?i:mktg)
um Groß- und Kleinschreibung zu vermeiden. Ich muss diesen Ausdruck mit „mktg“ erstellen, aber nicht mit dem Wort „round“.UND"SMP" in jeder Schreibweise. Kann jemand helfen? Ich habe es bereits mit /regexp/([^?i:SMP])
und versucht /regexp/^((?!SMP).)*$
, aber die ziehen trotzdem an diesem Faden.
Danke,
Valeria
Antwort1
Soweit ich weiß, sollte das hier funktionieren:
^(?i)(?=.*mktg)((?!round|smp).)*$
Erläuterung:
^ : 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
Testfälle:
Match: mktg
Match: abc mktg xyz
No match: round mktg
No match: SmP mktg
No match: SPM ROUND