다른 정규식 내에서 정규식을 부정하는 방법

다른 정규식 내에서 정규식을 부정하는 방법

즉, POSIX 정규 표현식 X가 주어지면 어떤 POSIX 정규 표현식이 X의 보완이 됩니까? (더 자세한 방법: X와 일치하지 않지만 X와 일치하는 문자열과 일치하지 않는 모든 문자열과 일치하도록 정규식 X'를 얻는 방법)

POSIX에서 사용할 수 없는 경우 이를 포함하는 일반 확장이 있습니까?

답변1

나는 PCRE를 사용해 볼 수 있다고 믿습니다 . 문자열일 때는 확실히 작동하지만 (?:(?!X).)정규 표현식일 X때는 항상 작동한다고 100% 확신할 수는 없습니다.X

echo "dust mite" | grep -P '^(?:(?!abc).)*$'
dust mite

echo "dust abc mite" | grep -P '^(?:(?!abc).)*$'
echo "dust mite" | grep -P '^(?:(?!abc(x+y)).)*$'
dust mite

echo "dust abcxxxxy mite" | grep -P '^(?:(?!abc(x+y)).)*$'

관련 정보