0
정규식을 사용하여 파일에서 읽는 텍스트의 특정 단어가 유효한지 유효하지 않은지 확인하는 C 프로그램을 작성하고 있습니다. 정규식 검사를 수행하는 코드가 첨부되었습니다. 온라인 정규식 검사기를 사용하여 정규식이 맞다고 말합니다. 왜 내가 틀렸을 지 모르겠습니다.
정규 표현식은 AB1234 또는 ABC1234 ABCD1234 형식의 문자열을 허용해야합니다. 당신은 regex.h
에서 POSIX regular expressions을 사용하는정규식이 올바른 솔루션을 반환하지 않습니다.
//compile the regular expression
reti1 = regcomp(®ex1, "[A-Z]{2,4}\\d{4}", 0);
// does the actual regex test
status = regexec(®ex1,inputString,(size_t)0,NULL,0);
if (status==0)
printf("Matched (0 => Yes): %d\n\n",status);
else
printf(">>>NO MATCH<< \n\n");
정확하게 "잘못"입니까? 예기치 않은 결과를주는 예제 입력을 제공하십시오. – aschepler
또한 문제를 설명하는 [짧지 만 완전한 프로그램] (https://stackoverflow.com/help/mcve)을 만들 수 있습니까? @aschepler가 언급했듯이, 예기치 않은 결과를주는 적어도 하나의 예제 입력을 코드에 포함시켜야하지만, 그 외에도 이미'main()'함수를 가지고있는 코드보다 훨씬 더 많이 가질 필요는 없습니다 . –
POSIX regex 구현 (regex.h)을 사용하고 있지만 지원되지 않는 PCRE 스타일 정규 표현식을 전달하는 것처럼 보입니다. –