すでにこの質問をしている人がいるのを見ましたが、私の場合は返信がうまくいきませんでした。以下のような構造の正規表現があります。
/regexp/(?i:mktg)
大文字と小文字の区別を避けるため、「mktg」を含み、「round」という単語を含まないこの式を構築する必要があります。そして「SMP」は大文字と小文字を区別しません。どなたか手伝っていただける方はいらっしゃいますか? すでに と を試しましたが/regexp/([^?i:SMP])
、/regexp/^((?!SMP).)*$
それでもこの文字列は表示されます。
ありがとう、
ヴァレリア
答え1
私の知る限り、これで問題は解決するはずです:
^(?i)(?=.*mktg)((?!round|smp).)*$
説明:
^ : 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
テストケース:
Match: mktg
Match: abc mktg xyz
No match: round mktg
No match: SmP mktg
No match: SPM ROUND