문제

저는 플랫폼 독립적이든 Windows별이든 네이티브 C++용 강력하고 사용하기 쉬운 정규식 평가기를 찾고 있습니다.

요구사항:

  • Boost 또는 ACE 정규식 라이브러리를 사용할 수 없습니다(안타깝게도).
  • .NET Regex(또는 모든 관리 코드)를 사용할 수 없습니다.

주요 요구 사항은 독립형이고 개방적이어야 한다는 것입니다.

도움이 되었습니까?

해결책

C++11에는 이제 정규식 지원이 포함됩니다.플랫폼 독립적입니다.최신 컴파일러만 있으면 됩니다.어떤 것을 사용해야 하는지 알아보려면 다음 목록을 확인하세요.

http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport

도움이 되길 바랍니다

다른 팁

노력하다 libpcre

Windows에 갇혀 있는 경우 Windows 포트가 작동해야 합니다.알아요 전자문서편집기 그것을 사용하므로 적어도 그것이 작동한다는 증거입니다 :-)

Visual Studio를 사용하는 경우 Visual C++ 2008 기능 팩 릴리스를 사용할 수 있습니다. 이는 TR1의 일부를 구현하고 정규식 구문 분석을 포함합니다. 그것을 얻으십시오

Qt 좋은 것도 있어 정규식 구현 QRegExp.또한 플랫폼 독립적입니다.

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의 일부로 출시된 라이브러리 버전부터 시작되었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top