: 유효하지 않은 문자열 만에 일치되도록
그것은 문자열 내에서 개행 문자를 제외 : 두 개의 작은 변화를 가지고
["](\\.|[^"\n])*["]?
을 라인의 끝. (.
는 줄 바꿈과 일치하지 않지만, 물론 줄 바꿈이 명시 적으로 부정되지 않는다면 부정 문자 클래스는 않습니다.)
이 인용 옵션이 아닌 임의의 반복 doubke 마감한다.
그러나 오류를 자동으로 무시하려는 유스 케이스는 상상하기 어렵습니다. 그래서 두 가지 규칙을 작성하는 것이 좋습니다 wiuld : 첫 번째 패턴은 (는) 다른 패턴 및 (f) 렉스는 항상 더 이상 경기에가는 것보다 한 번 더 문자와 일치하기 때문에 유효한 문자열과 일치 보장된다
["](\\.|[^"\n])*["] { /* valid string */ }
["](\\.|[^"\n])* { /* invalid string */ }
참고.
또한 (f) lex가 패턴을 컴파일하는 방식 때문에 두 개의 겹치는 규칙을 작성해도 실행 오버 헤드가 발생하지 않습니다. 결과적으로 공통 접두어가 자동으로 제거됩니다.
이걸 찾으십니까? [ "^"] * "?" – trincot
따옴표가 누락되었음을 어떻게 알 수 있습니까? 누락 된 따옴표를 나타내는 줄 끝 또는 파일 끝이 있습니까? –
행의 끝은 견적이 종료되었음을 나타냅니다. – user3047641