정규표현식을 처음 보는 경우, 여기서 다른 문자가 정확히 어떻게 사용되는지 물어볼 수 있습니다. 가장 먼저 이해해야 할 것은 문자 a, z, A, Z, 0 및 9가 문자 그대로 의도된 것입니다. 그들은 그들이 무엇을 의미합니다. 예를 들어 다음 정규식을 사용했다고 가정해 보겠습니다(그런데 완벽하게 합법적임): 그러나 런타임에 정규식을 컴파일하면 성능 비용이 발생하므로 정규식 개체 생성을 제한하고 다시 사용해야 합니다. 필요에 따라. 또 다른 문제: 대부분의 정규식 오류는 런타임까지 검색되지 않으며, 이 때 예외가 throw되므로 예외 처리를 사용해야 할 수 있습니다. 정규식 라이브러리는 문자열 내에서 패턴 일치를 수행하는 데 사용되는 일종의 미니 언어인 정규식을 나타내는 클래스를 제공합니다. 정규식을 사용하는 거의 모든 작업은 다음 개체 중 몇 가지에서 작동하는 것을 특징으로 할 수 있습니다: 정규식 문법의 기본 을 이미 이해하고 이전 토론을 통해 C++11 함수가 어떻게 작동하는지 이해하려고 기다린 경우, 양해 해 주셔서 감사합니다. (또는, 앞서 건너 뛰고 오른쪽 섹션을 발견하면, 축하합니다!) 이미 대부분의 정규 식의 문서에서 혼란의 시점에 도달했습니다. 당신은 합리적으로 더하기 기호가 “하나의 소문자와 일치하는 표현식 [a-z]가 하는 것과 일치하는 것 외에 앞의 식 중 하나 이상을 일치시다”를 의미한다고 생각할 수 있습니다.

논리적으로 전체 표현식 [a-z]+가 두 개 이상의 문자와 일치한다고 생각할 수 있습니다. 그러나 그것이 작동하는 방식이 아닙니다. 더하기 기호는 다음 표현식과 문법적으로 분리되지 않습니다. 오히려 표현식 수정자이므로 적용되는 식의 의미를 변경합니다. “한 번 일치하는 것 외에도 식을 한 번 이상 일치”한다는 의미는 아닙니다. github의 “regex_02.cpp”에서 위의 정규식을 사용하여 전체 예제를 찾을 수 있습니다. 다음 정규법 자습서에서는 정규식을 사용하여 텍스트를 정리하는 방법을 보여 드리며, 예를 들어 모든 HTML 태그에서 텍스트를 정리하거나 맞춤법 오류를 검색할 수 있습니다. 당연히 괄호는 그룹을 지정하는 데 사용됩니다. 다음 표현식을 고려하십시오: regex_search() – 이 함수는 정규식과 일치하는 패턴을 검색하는 데 사용되며 이 문서에 소개된 도구만 있으면 정규식을 많이 사용할 수 있습니다. 예를 들어 마지막 두 가지 주요 예제를 결합하여 텍스트 파일에 있는 모든 DOS 스타일 파일 이름을 찾아 인쇄할 수 있습니다(예: 보고 줄 번호).

(나는 독자를 위해 그 운동을 떠난다.) 간단한 예제로 시작하여 사용자가 입력한 정수의 유효성을 검사하려고 한다고 가정해 보겠습니다. C++는 0012, 12, +0012 또는 음수 -0012, -12, -0012와 같은 종류의 숫자 입력을 허용합니다. 모든 선행 영지는 무시되고 양수의 경우 더하기 기호를 안전하게 사용할 수 있습니다. 필요한 정규식을 공식화하기 전에 마침표 또는 전체 중지라고도 하는 점(.)을 지정하는 방법과 같은 한 가지 정보가 더 필요합니다. 점은 정규 표현 문법에 특별한 의미를 가합니다.