문제
저는 플랫폼 독립적이든 Windows별이든 네이티브 C++용 강력하고 사용하기 쉬운 정규식 평가기를 찾고 있습니다.
요구사항:
- Boost 또는 ACE 정규식 라이브러리를 사용할 수 없습니다(안타깝게도).
- .NET Regex(또는 모든 관리 코드)를 사용할 수 없습니다.
주요 요구 사항은 독립형이고 개방적이어야 한다는 것입니다.
해결책
C++11에는 이제 정규식 지원이 포함됩니다.플랫폼 독립적입니다.최신 컴파일러만 있으면 됩니다.어떤 것을 사용해야 하는지 알아보려면 다음 목록을 확인하세요.
http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport
도움이 되길 바랍니다
다른 팁
Visual Studio를 사용하는 경우 Visual C++ 2008 기능 팩 릴리스를 사용할 수 있습니다. 이는 TR1의 일부를 구현하고 정규식 구문 분석을 포함합니다. 그것을 얻으십시오
GNU C 라이브러리는 다음을 지원합니다. 정규 표현식.공개되어 있고, RE 코드도 쉽게 추출 가능한 것 같습니다.
GNU C 라이브러리 정규식 기능(regcomp(), regexec() 및 친구들)이 손상되었습니다.대신 libetre를 사용하세요.함수 서명은 glibc에서 제공하는 서명과 일치합니다.http://laurikari.net/tre/
나는 두 번째 추천을 할 것이다 PCRE.Windows의 C++ 프로젝트에서 사용했는데 훌륭하게 작동합니다.상용 소프트웨어를 구축하는 경우에도 무료입니다.또한 사용자가 환영할 사실상의 표준 정규식 언어를 구현합니다.PCRE는 물론 Perl과 호환되며 Python도 동일한 라이브러리를 사용합니다.
기본 PCRE 인터페이스는 약간 어색하고 매우 C 스타일이므로 주변에 멋진 C++ 래퍼를 작성하는 것이 좋습니다.이미 하나가 있을 가능성이 매우 높지만 나는 어떤 것도 익숙하지 않습니다.
C++11 이상에는 이제 다음이 포함됩니다. 표준 정규식 라이브러리.
포함 <regex>
헤더 및 사용.
Microsoft ATL의 정규식 라이브러리를 사용하지 않는 이유는 무엇입니까?케니 커(Kenny Kerr)는 다음과 같은 글을 썼습니다. 짧은 기사 최근에.
ATL에는 가벼운 정규식 구현이 포함되어 있습니다.원래 Visual C ++의 일부이지만 이제 ATL 서버 다운로드에 포함되어 있습니다.
그만큼
CAtlRegExp
클래스 템플릿은 파서 및 일치 엔진을 구현합니다....정규식 문법은 상단에 정의되어 있습니다.
atlrx.h
헤더 파일.
CodePlex의 무료 ATL 서버 라이브러리 및 도구에는 정규식 파서가 포함되어 있습니다.보다 CodePlex 아카이브의 AtlServer
ATL Server는 개발자가 서비스 유형 C ++ 응용 프로그램 및 웹 서비스의 클라이언트 및 서버 부품을 모두 구축 할 수있는 C ++ 클래스 라이브러리입니다.비누 메시징, 캐싱 시설, 스레딩 시설, 정기 표현 처리, 세션 상태 관리, 성능 모니터링, MIME 지원, IIS와의 통합 및 보안 상호 작용과 같은 대규모 인터넷 사이트를 구축하는 데 필요한 많은 기능을 제공합니다. 암호화 인프라.도서관의 이전 버전은 Visual Studio 2002, Visual Studio 2003 및 Visual Studio 2005의 일부입니다.프로젝트는 Visual Studio 2005 SP1의 일부로 출시된 라이브러리 버전부터 시작되었습니다.