c++ 정규표현식 예제

regex_search() – 정규식과 일치하는 패턴을 검색하는 데 이 함수가 정규식을 처음 보는 경우 이 함수는 다음과 같은 다른 문자가 정확히 어떻게 사용되는지 물어볼 수 있습니다. 가장 먼저 이해해야 할 것은 문자 a, z, A, Z, 0 및 9가 문자 그대로 의도된 것입니다. 그들은 그들이 무엇을 의미합니다. 예를 들어 다음과 같은 정규식(완벽하게 합법적)을 사용했다고 가정해 보겠습니다. 다음 표현식을 고려하십시오: 대상 시퀀스 „bcdbcd“에서 정규식 „bcd“에 대한 검색이 성공하고 처음 세 문자와 일치합니다. 정규식 검색이 성공하려면 정규식과 일치하는 대상 시퀀스의 어딘가에 하위 시퀀스가 있어야 합니다. 검색은 일반적으로 가장 일치하는 하위 시퀀스를 찾습니다. 실제로는 대부분 ECMAScript 문법을 사용합니다. 기본 문법이며 다른 문법보다 훨씬 더 많은 기능을 제공합니다. 이 웹 사이트의 튜토리얼이 std::reex를 언급하지 않고 문법을 언급하지 않고 작성된 내용이 ECMAScript 문법에 적용되며 다른 문법에 적용될 수도 있고 적용되지 않을 수도 있습니다. 이전 POSIX 코드 또는 UNIX 스크립트의 기존 정규식을 재사용하려는 경우에만 다른 문법을 사용합니다.

regex_match() -정규식이 지정된 문자열과 일치하는 경우 이 함수는 true를 반환합니다. C++11 표준에 정의된 C++ 표준 라이브러리는 헤더에서 정규식을 지원합니다. C++11 이전에는 C++ 표준 라이브러리에 대한 TR1 확장의 일부였습니다. 이 웹 사이트에서 std::reex를 언급하는 경우 Visual C++ 2008 이상에 포함된 C++ 표준 라이브러리의 Dinkumware 구현을 나타냅니다. 또한 C ++ 빌더 XE3및 Win64을 대상으로 할 때 나중에 지원됩니다. Visual C++ 2008에서 네임스페이스는 std::tr1:reex가 아니라 std::reex입니다. 이 문서에서 소개한 도구만 있으면 정규표현식으로 많은 작업을 수행할 수 있습니다. 예를 들어 마지막 두 가지 주요 예제를 결합하여 텍스트 파일에 있는 모든 DOS 스타일 파일 이름을 찾아 인쇄할 수 있습니다(예: 보고 줄 번호).

(나는 독자를 위해 그 운동을 떠난다.) 정규식 이터레이터는 시퀀스 내에 있는 정규식 일치 의 전체 집합을 통과하는 데 사용됩니다. 그러나 런타임에 정규식을 컴파일하면 성능 에 대한 비용이 발생하므로 정규식 개체 생성을 제한하고 필요에 따라 다시 사용해야 합니다. 또 다른 문제: 대부분의 정규식 오류는 런타임까지 검색되지 않으며, 이 때 예외가 throw되므로 예외 처리를 사용해야 할 수 있습니다. 기본 식과 grep을 제외한 모든 정규식 문법에서 연결된 정규식 뒤에 문자 `|`와 다른 정규식이 연결될 수 있습니다.