regex_replace
정규식으로 찾은 문자열을 다른 문자열로 바꿔주는 기능이다. 찾은 문자열에서 괄호 ( ) 로 표시한 그룹을 $1 ~ 로 표현이 가능하다.
#include <regex> #include <iostream> using namespace std; int main() { string str("icysowrd@nate.com; sjyun@warevally.com;;; orange@warevalley.com"); regex e("([[:w:]]+)@([[:w:]]+)\.com", regex_constants::icase); string fmt("$1 is on $2 "); cout << regex_replace(str, e, fmt); cin >> str; }
regex 에서 사용한 regex_constants::icase 는 대소문자 구분을 무시하는 Flag 이다.
regex_replace에서도 다른 Flag 들이 사용 가능하다.
regex_constants::format_no_copy 는 Match 되지 않은 나머지 문자열들은 표시해주지 않는 다는 의미이며,
regex_constants::format_first_only 는 처음 Match 된 문자열만을 표시해준다.
기타 다른 Flag 들은 MDSN 이나 Boost 홈페이지를 참조하면 자세히 나와 있다.
댓글 없음:
댓글 쓰기