2008-08-04 3 views
21

플랫폼 독립적 또는 Windows 특정 네이티브 C++ 용 강력하고 사용하기 쉬운 정규식 평가기를 찾고 있습니다.C++에서 사용하기 쉬운 정규식 지원?

요구 사항 :

이 가 부스트 또는 (불행하게도) ACE 정규식 라이브러리
  • 는 .NET 정규식 (또는 관리되는 코드)를 사용할 수 없습니다를 사용할 수 없습니다
  • 주요 요구 사항은

    • 그것은 독립적이고 열려 있어야합니다. 당신은 그들이 작동합니다 윈도우 포트가 창문에 붙어있는 경우

  • +0

    호기심 - 왜 부스트를 사용할 수 없습니까? – svec

    +0

    @svec 소스 코드는 배포 용이며 Boost를 사용하는 많은 사람들은 Boost가 없기 때문에 Boost를 다운로드하고 빌드 할 수 없거나 만들지 않을 수 있습니다. 그러나 일부 도서관은 포함되도록 예정되어 있습니다. 5 년 전에 일어 났어야했는데, 어이. 부디. –

    +1

    그러나 클라이언트에 추가 기능을 설치할 필요는 없습니다. 그냥 부스트와 정적으로 연결하면 아무런 문제가 없어야합니다. (클라이언트가 설치되어 있어도 동일한 버전을 가지지 않거나 동일한 옵션으로 컴파일했을 수 있기 때문에 항상 정적으로 링크를 연결해야합니다.) –

    답변

    8

    libpcre

    을 시도합니다. 나는 e-texteditor이 그것을 사용한다는 것을 알고 있으므로 적어도 그것이 작동한다는 것을 증명한다 :-)

    3

    GNU C 라이브러리는 regular expressions을 지원한다. 그것은 열려 있고 RE 코드는 쉽게 추출 할 수있는 것 같습니다.

    3

    GNU C 라이브러리의 정규 표현식 기능 (regcomp(), regexec() 및 friends)이 손상되었습니다. 대신 libetre를 사용하십시오. 함수 서명은 glibc가 제공 한 것과 일치합니다. http://laurikari.net/tre/

    7

    Visual Studio를 사용하는 경우 Visual C++ 2008 Feature Pack Release를 사용할 수 있습니다.이 도구는 TR1 중 일부를 구현하며 정규식 파싱을 포함합니다. Get it

    1

    왜 Microsoft ATL의 정규식 라이브러리를 사용하지 않습니까? Kenny Kerr은 최근에 short article을 작성했습니다. 희망이 도움이됩니다.

    3

    PCRE의 추천 번호는 두 번째입니다. Windows의 C++ 프로젝트에서 사용했는데 잘 작동합니다. 상업용 소프트웨어를 구축하는 경우에도 무료입니다. 또한 사실 표준 정규 표현식 언어를 구현하여 사용자에게 환영받을 것입니다. PCRE는 물론 Perl과 호환되며 Python도 동일한 라이브러리를 사용합니다.

    네이티브 PCRE 인터페이스는 다소 어색하고 C 스타일이기 때문에 멋진 C++ 래퍼를 작성할 가치가 있습니다. 거기에 이미 하나 밖에없는 것 같지만, 나는 익숙하지 않습니다.

    0

    Codeplex의 무료 ATL 서버 라이브러리에는 정규식 파서가 포함되어 있습니다.

    ATL Server

    관련 문제