http://msdn.microsoft.com/en-us/library/bb982727.aspx에서 관련 문제를 찾을 수 없습니다.C++ TR1 정규식에서 도트 (.) 일치 개행을 사용하는 방법이 있습니까?
아마도 '[^] +'를 사용하여 모든 것을 일치시킬 수 있지만 해킹처럼 보일 수 있습니까?
감사합니다.
http://msdn.microsoft.com/en-us/library/bb982727.aspx에서 관련 문제를 찾을 수 없습니다.C++ TR1 정규식에서 도트 (.) 일치 개행을 사용하는 방법이 있습니까?
아마도 '[^] +'를 사용하여 모든 것을 일치시킬 수 있지만 해킹처럼 보일 수 있습니까?
감사합니다.
대신 Boost.Regex는 도트 일치 뉴 라인을 만들 수있는 mod_s
플래그를 가지고 있지만, 그것은 TR1 정규식 표준의 일부가 아닌 : 그것은이 같은 것을 보인다. (볼 수있는 한 Microsoft 내선 번호로는 사용할 수 없음)
해결 방법으로 [\s\S]
(공백 또는 공백이 아닌 모든 문자를 의미)을 사용할 수 있습니다.
사람들이 사용하는 속임수 중 하나는 null 문자가 아닌 문자 클래스입니다. 널 문자는 16 진수로 표시됩니다.
[^\x00]+
C++ 정규 표현식이 ECMAScript 정규 표현식을 기반으로하는 것처럼 보일 때 JavaScript에서와 동일한 것에 대해 answer to the recent question이 도움이 될 수 있습니다.
[^]
이 효과적 일 수 있지만 좀 더 명확하고 덜 해킹하기를 원하는 경우 (.|\n)
을 사용해보세요.
정규식이 아닌 ECMA 형식으로 바꿀 수 있습니다 (regext flavor를 제어하기위한 여러 가지 플래그가 있음). 어떤 POSIX 정규 표현식이라도 정확하게 기억한다면, 개행을 .
과 일치시켜야합니다.
도트 올? http://stackoverflow.com/questions/1712696/boostregex-dotall-flag – Sampson
Jonathan, Boost! = TR1. –