[ERROR]
과 일치하는 정규 표현식을 찾고 있지만 [ERROR].*Internal Error
이 아닌 것을 찾고 있습니다. 나는 정규 표현식에 능숙하지 않다. 하지만이 시도하고 작동하지 않았다 : -문자열에 다른 문자열이 포함되어 있으면 일치하지 않습니다.
\[ERROR\].*(?!.*[Ii]nternal [Ee]rror).
어떤 제안? 다음과 같이
[ERROR]
과 일치하는 정규 표현식을 찾고 있지만 [ERROR].*Internal Error
이 아닌 것을 찾고 있습니다. 나는 정규 표현식에 능숙하지 않다. 하지만이 시도하고 작동하지 않았다 : -문자열에 다른 문자열이 포함되어 있으면 일치하지 않습니다.
\[ERROR\].*(?!.*[Ii]nternal [Ee]rror).
어떤 제안? 다음과 같이
는 [ERROR] Internal Error
에 대하여, 당신의 패턴이 일치 :
+------------------------ pos 0, len 7 "[ERROR]"
| +------------------- pos 7, len 15 " Internal Error"
| | +----- pos 22, len 0 ""
| | |
___|___ | ___________|____________
/ \/\/ \
\[ERROR\].*(?!.*[Ii]nternal [Ee]rror)
당신은 Internal Error
이 [ERROR]
후 임의의 위치에서 시작하지 않도록해야합니다.
/\[ERROR\](?!.*[Ii]nternal [Ee]rror)/s
(\[ERROR\])(?:.(?![Ii]nternal [Ee]rror))+.
편집 됨, 공간을 고려하지 않았습니다. –
대답을 확장하여 질문자에게 왜 이것이 원하는 결과를 얻었는지 설명하고 가능하면 문서에 연결하는 것을 고려하십시오. 사실, 이것은 단지 약간 유용합니다. –
은 (는)'[ERROR] Internal Error.'에 대해 실패합니다 (1). – ikegami
사용 명확성을 위해이 개 정규 표현식 : [^CHAR]*
말했다
CHAR
에 그대로
/\[ERROR\](?:(?![Ii]nternal [Ee]rror).)*\z/s
(?:(?!STRING).)*
는 \z
당신이 다음에 위를 단순화 할 수 있습니다, STRING
이다/단순함 (! ~은 "일치하지 않음"을 의미)
if (($a =~ /\[ERROR\]/) && ($a !~ /[Ii]nternal [Ee]rror/)) {
#do your stuff
}
내부 오류 [ERROR]'에 대해 참이지만, OP가 말한 내용에도 불구하고 이는 아마도 괜찮을 것입니다. – ikegami
나를 위해 일했습니다. 감사합니다 – aasthetic
내 대답이 업데이트되었습니다. – ikegami