안녕하세요 만해입니다.
그동안 많은 분들의 조언으로
HTML 파서를 직접 제작 할려고 하는데요
어제 RFC에서 1.0 스펙에 관련 내용
RFC 1945 인가 뽑아서 보고 있습니다.
그런데 제가 문자열 처리 아직 좀 미숙해서
정모님께서 올려 놓은 TRegExpr 컴포넌트를 사용할려고 하는데요
오늘 RFC1945에 있는 HTTP_Date를 정규 표현식으로 바꿔서
RegExpr에 집어 넣고 컴파일을 돌리니깐
Error To Many () 이렇게 나오네요
이걸 어떻게 해결할 방법이 없을런지 좀알려주세요
TRegExpr *RegExp = new TRegExpr;
AnsiString Time = "((\\d{2}:){2}\\d{2})";
// 시간에 대한 정규 표현식
AnsiString WkDay = "(Mon|Tue|Wed|Thu|Fri|Sat|Sun)";
// wk에 대한 정규 표현식
AnsiString WeekDay = "(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday)";
// WeekDay에 대한 정규 표현식
AnsiString Month = "(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)";
// Month에 대한 정규 표현식
AnsiString Day = "(\\d{2})";
// Day에 대한 정규 표현식
AnsiString Year = "(\\d{4})";
// Year에 대한 정규 표현식
AnsiString SYear = "(\\d{2})";
// Short Year에 대한 정규 표현식
AnsiString Date1 = Day + "\\s" + Month + "\\s" + Year;
AnsiString Date2 = Day + "-" + Month + "-" + SYear;
AnsiString Date3 = Month + "\\s" + "(" + Day + "|\\d{1})";
AnsiString Rfc1123_Date = WkDay + ",\\s" + Date1 + "\\s" + Time + "\\sGMT";
// RFC 1123에 정의된 날짜 표현식
AnsiString Rfc850_Date = WeekDay + ",\\s" + Date2 + "\\s" + Time + "\\sGMT";
// RFC 850에 정의된 날짜 표현식
AnsiString AscTime_Date = WkDay + "\\s" + Date3 + "\\s" + Time + "\\s" + Year;
// ASCTimeDate 정규 표현식
AnsiString HTTPDate = Rfc1123_Date + "|" + Rfc850_Date + "|" + AscTime_Date;
RegExp->Expression =HTTPDate;
RegExp->ModifierX = true;
여기 까지고
RegExp->Compile(); 를 실행 시키자 마자 에러가~
흑 ~
참 그리고 정규 표현은 제가 델용으로 나와있는
테스트 프로그램으로 다 테스팅을 해본거라서 안전합니다.
고수님들의 조언 부탁 드립니다.
|