(같은 사용자의 중간 판 17개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
==개요== | ==개요== | ||
{{DISPLAYTITLE:C++ | {{DISPLAYTITLE:C++ preg_split() 구현}} | ||
;C++ preg_split() 구현 | |||
;C++ 문자열 split() 구현 | ;C++ 문자열 split() 구현 | ||
;C++ 문자열 preg_split() 구현 | ;C++ 문자열 preg_split() 구현 | ||
==aaa1bbb2ccc== | |||
<syntaxhighlight lang='cpp' run> | <syntaxhighlight lang='cpp' run> | ||
#include <iostream> | #include <iostream> | ||
11번째 줄: | 13번째 줄: | ||
int main() { | int main() { | ||
string | string line("aaa1bbb2ccc"); | ||
regex sep("[0-9]"); | |||
regex | sregex_token_iterator iter(line.begin(), line.end(), sep, -1), end; | ||
sregex_token_iterator iter( | vector<string> strs{iter, end}; | ||
for (string s: strs) cout << s << ", "; // aaa, bbb, ccc, | |||
} | |||
</syntaxhighlight> | |||
==aaa111bbb222ccc== | |||
<syntaxhighlight lang='cpp' run> | |||
#include <iostream> | |||
#include <vector> | |||
#include <regex> | |||
using namespace std; | |||
int main() { | |||
string line("aaa111bbb222ccc"); | |||
regex sep("[0-9]+"); | |||
sregex_token_iterator iter(line.begin(), line.end(), sep, -1), end; | |||
vector<string> strs{iter, end}; | |||
for (string s: strs) cout << s << ", "; // aaa, bbb, ccc, | |||
} | |||
</syntaxhighlight> | |||
<syntaxhighlight lang='cpp' run> | |||
#include <iostream> | |||
#include <vector> | |||
#include <regex> | |||
using namespace std; | |||
int main() { | |||
string line("aaa111bbb222ccc"); | |||
regex sep("[a-z]+"); | |||
sregex_token_iterator iter(line.begin(), line.end(), sep, -1), end; | |||
vector<string> strs{iter, end}; | vector<string> strs{iter, end}; | ||
for (string s: strs) cout << s << | for (string s: strs) cout << s << ", "; // , 111, 222, | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==123aaa== | |||
<syntaxhighlight lang='cpp' run> | |||
#include <iostream> | |||
#include <vector> | |||
#include <regex> | |||
using namespace std; | |||
int main() { | |||
string line("123aaa"); | |||
regex sep("[0-9]"); | |||
sregex_token_iterator iter(line.begin(), line.end(), sep, -1), end; | |||
vector<string> tokens{iter, end}; | |||
for (string t: tokens) cout << t << ", "; // , , , aaa, | |||
} | |||
</syntaxhighlight> | |||
<syntaxhighlight lang='cpp' run> | |||
#include <iostream> | |||
#include <vector> | |||
#include <regex> | |||
using namespace std; | |||
int main() { | |||
string line("123aaa"); | |||
regex sep("[0-9]"); | |||
sregex_token_iterator iter(line.begin(), line.end(), sep, -1); | |||
auto tokens = vector<string>(iter, sregex_token_iterator()); | |||
tokens.erase(remove_if(tokens.begin(), tokens.end(), [](string const& s){ return s.empty(); }), tokens.end()); | |||
for (string t: tokens) cout << t << ", "; // aaa, | |||
} | |||
</syntaxhighlight> | |||
==abc,defgh,ijk== | |||
<syntaxhighlight lang='cpp' run> | <syntaxhighlight lang='cpp' run> | ||
#include <iostream> | #include <iostream> | ||
28번째 줄: | 92번째 줄: | ||
string in = "abc,defgh,ijk"; | string in = "abc,defgh,ijk"; | ||
regex | regex sep(","); | ||
sregex_token_iterator iter(in.begin(), in.end(), | sregex_token_iterator iter(in.begin(), in.end(), sep, -1), end; | ||
vector<string> strs{iter, end}; | vector<string> strs{iter, end}; | ||
for (string s: strs) cout << s << ' '; // abc defgh ijk | for (string s: strs) cout << s << ' '; // abc defgh ijk | ||
54번째 줄: | 118번째 줄: | ||
==같이 보기== | ==같이 보기== | ||
* [[C++ 문자열]] | * [[C++ 문자열]] | ||
* [[C++ preg_split_delim_capture() 구현]] | |||
* [[함수 preg_split()]] | * [[함수 preg_split()]] | ||
[[분류: C++ 문자열]] | [[분류: C++ 문자열]] | ||
[[분류: C++ 정규표현식]] | |||
[[분류: C++ 문자열 벡터]] |
2023년 11월 10일 (금) 18:25 기준 최신판
1 개요[ | ]
- C++ preg_split() 구현
- C++ 문자열 split() 구현
- C++ 문자열 preg_split() 구현
2 aaa1bbb2ccc[ | ]
C++
Copy
#include <iostream>
#include <vector>
#include <regex>
using namespace std;
int main() {
string line("aaa1bbb2ccc");
regex sep("[0-9]");
sregex_token_iterator iter(line.begin(), line.end(), sep, -1), end;
vector<string> strs{iter, end};
for (string s: strs) cout << s << ", "; // aaa, bbb, ccc,
}
Loading
3 aaa111bbb222ccc[ | ]
C++
Copy
#include <iostream>
#include <vector>
#include <regex>
using namespace std;
int main() {
string line("aaa111bbb222ccc");
regex sep("[0-9]+");
sregex_token_iterator iter(line.begin(), line.end(), sep, -1), end;
vector<string> strs{iter, end};
for (string s: strs) cout << s << ", "; // aaa, bbb, ccc,
}
Loading
C++
Copy
#include <iostream>
#include <vector>
#include <regex>
using namespace std;
int main() {
string line("aaa111bbb222ccc");
regex sep("[a-z]+");
sregex_token_iterator iter(line.begin(), line.end(), sep, -1), end;
vector<string> strs{iter, end};
for (string s: strs) cout << s << ", "; // , 111, 222,
}
Loading
4 123aaa[ | ]
C++
Copy
#include <iostream>
#include <vector>
#include <regex>
using namespace std;
int main() {
string line("123aaa");
regex sep("[0-9]");
sregex_token_iterator iter(line.begin(), line.end(), sep, -1), end;
vector<string> tokens{iter, end};
for (string t: tokens) cout << t << ", "; // , , , aaa,
}
Loading
C++
Copy
#include <iostream>
#include <vector>
#include <regex>
using namespace std;
int main() {
string line("123aaa");
regex sep("[0-9]");
sregex_token_iterator iter(line.begin(), line.end(), sep, -1);
auto tokens = vector<string>(iter, sregex_token_iterator());
tokens.erase(remove_if(tokens.begin(), tokens.end(), [](string const& s){ return s.empty(); }), tokens.end());
for (string t: tokens) cout << t << ", "; // aaa,
}
Loading
5 abc,defgh,ijk[ | ]
C++
Copy
#include <iostream>
#include <regex>
#include <vector>
using namespace std;
int main() {
string in = "abc,defgh,ijk";
regex sep(",");
sregex_token_iterator iter(in.begin(), in.end(), sep, -1), end;
vector<string> strs{iter, end};
for (string s: strs) cout << s << ' '; // abc defgh ijk
}
Loading
C++
Copy
#include <iostream>
#include <sstream>
#include <vector>
using namespace std;
int main() {
string in = "abc,defgh,ijk";
vector<string> strs;
istringstream ss(in);
for (string s; getline(ss, s, ','); ) {
strs.push_back(s);
}
for (string s: strs) cout << s << ' '; // abc defgh ijk
}
Loading
6 같이 보기[ | ]
편집자 Jmnote
로그인하시면 댓글을 쓸 수 있습니다.