我看到已經有人問這個問題了,但回覆對我來說不起作用。我有一個如下所示的 reg exp 結構:
/regexp/(?i:mktg)
以避免字元大小寫情況。我需要建立包含“mktg”但不包含“round”一詞的表達式和任何字元大小寫的“SMP”。有人願意幫忙嗎?我已經嘗試過/regexp/([^?i:SMP])
和/regexp/^((?!SMP).)*$
,但這些仍然會拉動這根弦。
謝謝,
瓦萊裡婭
答案1
AFAIK 這應該可以完成這項工作:
^(?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