1
누구나 읽을 수있는만큼 빨리 작성된 로그 파일을 구문 분석하는 C++ 프로그램을 작성했습니다. 프로그램은 모든 행을 'WARN'과 같은 단어로 찾지 만 'WARNA'는 찾지 않아야합니다. 나는 리눅스에서는 잘 작동하지만 Solaris에서는 제대로 작동하지 않는다고 말했다. 나는 REG_EXTENDED
플래그와 함께 regcomp()
을 사용했습니다.정규식은 리눅스에서 작동하지만 Solaris에서는 작동하지 않습니다.
regcomp()
은 오류를 발생시키지 않으며 regexec
은 1을 반환합니다. (REG_NOMATCH)
.
나는 regexec()
과 regcomp()
을 사용합니다.
내가
은 나 자신에 의해 문제를 해결 리눅스.*([^A-Za-z1-9]|\s)(error|ERROR|Error|fatal|FATAL|Fatal|excep|EXCEP|Excep|warn|WARN|Warn|problem|PROBLEM|Problem|fail|FAIL|Fail|fault|Fault|FAULT|cannot|Cannot|CanNot|CANNOT|cannot|Cannot|CANNOT|cant|can't|Cant|Can't|unable|Unable|UNABLE|mandatory|Mandatory|MANDATORY|mustnot|Mustnot|MustNot|MUSTNOT|couldnot|Couldnot|CouldNot|COULDNOT|didnot|Didnot|DidNot|DIDNOT|violat|Violat|VIOLAT|damage|Damage|DAMAGE|missing|Missing|notfinish|mandatory|Mandatory|MANDATORY|broken|Broken|BROKEN)([^a-zA-Z1-9]).*
왜 'boost :: regex'를 사용하지 않을까요? – Slava
어떤 컴파일러를 사용하고 있으며 어떤 버전입니까? – sjdowling
대소 문자없이 "error"를 확인하는 방법이 있어야하므로'error | ERROR | Error'가 필요하지 않습니다. – Almo