c + + 11 정규 표현 식 기본 사용
상용 방법 regexmatch regex_search regex_replace 등.
regex_match 는 정규 표현 식 이 패턴 문자열 과 완전히 일치 해 야 합 니 다. 예 를 들 어:
string str = "o ";
regex pattern("o\\s");
bool matched = regex_match(str,pattern);
if (matched) {
cout << "matched.." << endl;
}else{
cout << "not matched." << endl;
}
위 에서 일치 할 수 있 습 니 다. 수정 하면:
string str = "o 1";
regex pattern("o\\s");
bool matched = regex_match(str,pattern);
if (matched) {
cout << "matched.." << endl;
}else{
cout << "not matched." << endl;
}
not matched 입 니 다.
regex_match 는 하위 모드 의 일치 성 을 포함 하고 일치 하 는 결 과 를 표시 합 니 다. 주로 사 용 됩 니 다.
match_results<:const_iterator> result
일치 하 는 결 과 를 저장 합 니 다.
string str = "1:2:33:344";
regex pattern("(\\d{1,3}):(\\d{1,3}):(\\d{1,3}):(\\d{1,3})");
match_results<:const_iterator> result;
bool matched = regex_match(str,result,pattern);
if (matched) {
cout << "matched.." << endl;
printf("result.size = %d
",(int)result.size());
for (int i = 0; i < result.size(); ++i) {
printf("result[%d]:%s
",i,result[i].str().c_str());
}
}else{
cout << "not matched." << endl;
}
출력: matched.. result. size = 5 result [0]: 1: 23: 344 result [1]: 1 result [2]: 2 result [3]: 33 result [4]: 344 아이디어 인쇄 결과 result [0]
regex_search 는 일치 하 는 항목 만 있 으 면 됩 니 다.
string str = "o 1";
regex pattern("\\w\\s");
bool matched = regex_search(str,pattern);
if (matched) {
cout << "matched.." << endl;
}else{
cout << "not matched." << endl;
}
출력: matched.. 첫 번 째 일치 항목 만 출력 하려 면 smatch 로 결 과 를 저장 합 니 다.
string str = "o 1s;23235;t;dsf;sd 66 ";
regex pattern(";");
smatch result;
bool matched = regex_search(str,result,pattern);
if (matched) {
cout << "matched.." << endl;
cout << "result.size:" << result.size() << endl;
for (int i = 0; i < result.size(); ++i) {
printf("result[%d]:\t%s
",i,result[i].str().c_str());
}
}else{
cout << "not matched." << endl;
}
출력 결 과 는: matched. result. size: 1 result [0]:;
모든 일치 하 는 결 과 를 출력 하려 면 sregex 를 사용 해 야 합 니 다.token_iterator
string str = "o 1s 23235 t ds f sd 66 ";
regex pattern("\\w\\s");
sregex_token_iterator end;
sregex_token_iterator start(str.begin(),str.end(),pattern);
while (start != end) {
cout << (*start) << endl;
++start;
}
출력: o s 5 t s f d 6
regex_replace 방법 으로 일치 하 는 것 을 교체 합 니 다.
string str = "o 1s 23235 t ds f sd 66 ";
regex pattern("\\w\\s");
bool matched = regex_search(str,pattern);
if (matched) {
cout << "matched ." << endl;
auto newStr = regex_replace(str,pattern,"---");
printf("newStr : %s
",newStr.c_str());
}else{
cout << "not matched ." << endl;
}
출력 결 과 는: matched. newStr: --- 1 - -- 2323 - --- d - --- s - -- 6 - --
위 는 c + + 11 정규 표현 식 의 기본 사용 입 니 다. 내용 은 기본적으로 이 작가 에서 나 옵 니 다.
다음으로 전송:https://www.cnblogs.com/daihanlong/p/5450762.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.