#keywords C++,C++0x,정규표현식
[[TableOfContents]]
== 사용 ==
=== 매치 regex_match ===
{{{#!gcode
char* buf = (char*)malloc(sizeof(char)*BUFFER_SIZE);
strcpy_s(buf, 80, "asdfABCDasdf");
std::tr1::regex rx(".*ABCD.*");
if (std::tr1::regex_match(buf, rx))
{
// some code
cout << "ABCD exist" << endl;
}
}}}
----
{{{
ABCD exist
}}}
=== 매치 결과 cmatch ===
{{{#!gcode
char* buf = (char*)malloc(sizeof(char)*BUFFER_SIZE);
fgets(buf, BUFFER_SIZE, fp);
std::tr1::cmatch matches;
std::tr1::regex rx(".*]*>(.*)");
if (std::tr1::regex_match(buf, matches, rx))
{
std::string str(matches[1]);
cout << str << endl;
}
}}}
----
{{{
경제
↓
경제
}}}
=== 대체 regex_replace ===
{{{#!gcode
// E-Mail 이후를 잘라낸다.
string fmt("");
std::tr1::regex email_ascii("[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}.*");
str = std::tr1::regex_replace(str, email_ascii, fmt);
}}}
----
{{{
공했습니다.
공정위는 죄질이 나쁘다며 재판매가격 위반 사건 가운데 가장 높은 6억 5천9백만 원의 과징금을 부과했습니다.
MBN뉴스 황승택입니다.
[ 황승택 / hstneo@mbn.co.kr ]
트위터 @hstneo
])*>");
}}}
=== href 링크 추출 ===
{{{#!gcode
std::tr1::regex href("href\s*=\s*(?:\"([^\"]*)\"|([^\']*)\'|([^\'\">\s]+))");
}}}
=== 숫자와 기호 매치 ===
{{{#!gcode
std::tr1::regex num_and_sign"[-0-9#&+%@=/\\:;.,\'\"^`~_|!\?*$#<>()]");
}}}