이미 누군가가 이 질문을 하는 것을 보았지만 내 경우에는 답변이 작동하지 않았습니다. 아래와 같이 구성된 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