ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [c++] regex_replace 함수
    Programming/c++ 2023. 1. 20. 13:24
    728x90

    1.함수 헤더 파일

    #include <regex>

    2.함수 원형

    template <class OutIt, class BidIt, class RXtraits, class Alloc, class Elem>
    OutIt regex_replace(
        OutIt out,
        BidIt first,
        BidIt last,
        const basic_regex<Elem, RXtraits, Alloc>& re,
        const basic_string<Elem>& fmt,
        match_flag_type flags = match_default);
    
    template <class RXtraits, class Alloc, class Elem>
    basic_string<Elem> regex_replace(
        const basic_string<Elem>& str,
        const basic_regex<Elem, RXtraits, Alloc>& re,
        const basic_string<Elem>& fmt,
        match_flag_type flags = match_default);

     

    3. Parameter(매개 변수)

    OutIt The iterator type for replacement.
    BidIt The iterator type for submatches.
    RXtraits The attribute class for the element.
    Alloc The regular expression allocator class.
    Elem The type of element to find a match for.
    flags Flags for matching.
    first The start of the matching sequence.
    fmt The format for substitution.
    last End of matching sequence.
    out An output iterator.
    re The regular expression to look for matches.
    str A string to match.

     

    4. Described

    첫 번째 함수는 클래스 객체 iter(first, last, re, flags)를 구성하고, 'regex_iterator'를 사용하여  [first, last)입력 범위를 T0 M0 T1 M1...TN-1 MN-1 TN 로 분할합니다. 

    여기서 MN은 match가 발견되는 n번째 iterator입니다. 일치하는 항목이 발견되지 않으면 은 전체 입력 범위이고 N은 0입니다. (timeout & format_first_only)!= 0.

     

     

    4.예제

    #include <iostream>
    #include <regex>
    
    using namespace std;
    int main(){
    	string str("adaeaf");
        regex rx("a");
        string fmt("A");
        cout << "relpacement == " << regex_replace(str, rx, fmt) << endl; 
    
        regex_constants::match_flag_type fonly = regex_constants::format_first_only;
        cout << "replacement == " << regex_replace(str, rx ,fmt, fonly) << endl;
        
    	return 0;
    }
    relpacement == AdAeAf   // 매치되는 모든 문자 replacement
    replacement == Adaeaf   // 첫번째 매치되는 문자만 replacement

     

    728x90

    'Programming > c++' 카테고리의 다른 글

    [c++] basic_regex class  (0) 2023.01.20
    [c++] regex swap 함수  (0) 2023.01.20
    [c++] regex_match 함수  (0) 2023.01.20
    [c++] regex 라이브러리  (0) 2023.01.20
    [c++] std::partition_point  (0) 2022.12.26

    댓글

© 2022. code-space ALL RIGHTS RESERVED.