|
10 | 10 | #include<iostream>
|
11 | 11 | #include<string>
|
12 | 12 | #include<regex>
|
13 |
| - |
| 13 | +usingnamespacestd; |
14 | 14 | intmain() {
|
15 |
| -std::string fnames[] = {"foo.txt","bar.txt","test","a0.txt","AAA.txt"}; |
| 15 | + string fnames[] = {"foo.txt","bar.txt","test","a0.txt","AAA.txt"}; |
16 | 16 | // In C++, `\` will be used as an escape character in the string.
|
17 | 17 | // In order for `\.` to be passed as a regular expression,
|
18 | 18 | // it is necessary to perform second escaping of `\`, thus we have `\\.`
|
19 |
| -std::regextxt_regex("[a-z]+\\.txt"); |
| 19 | + regextxt_regex("[a-z]+\\.txt"); |
20 | 20 | for (constauto &fname: fnames)
|
21 |
| -std::cout << fname <<":" <<std::regex_match(fname, txt_regex) <<std::endl; |
| 21 | + cout << fname <<":" <<regex_match(fname, txt_regex) << endl; |
22 | 22 |
|
23 |
| - std::regexbase_regex("([a-z]+)\\.txt"); |
24 |
| -std::smatch base_match; |
| 23 | + regexbase_regex("([a-z]+)\\.txt"); |
| 24 | + smatch base_match; |
25 | 25 | for(constauto &fname: fnames) {
|
26 |
| -if (std::regex_match(fname, base_match, base_regex)) { |
| 26 | +if (regex_match(fname, base_match, base_regex)) { |
27 | 27 | // the first element of std::smatch matches the entire string
|
28 | 28 | // the second element of std::smatch matches the first expression with brackets
|
29 | 29 | if (base_match.size() ==2) {
|
30 |
| -std::string base = base_match[1].str(); |
31 |
| -std::cout <<"sub-match[0]:" << base_match[0].str() <<std::endl; |
32 |
| -std::cout << fname <<" sub-match[1]:" << base << std::endl; |
| 30 | + string base = base_match[1].str(); |
| 31 | + cout <<"sub-match[0]:" << base_match[0].str() << endl; |
| 32 | + cout << fname <<" sub-match[1]:" << base <<endl; |
33 | 33 | }
|
34 | 34 | }
|
35 | 35 | }
|
|