[C++]regex正则匹配

Cplusplus
头像
vicyang
版主
版主
帖子: 56
注册时间: 2016年07月21日 20:35
拥有现金: 锁定
储蓄: 锁定
Has thanked: 7 times
Been thanked: 5 times
联系:

[C++]regex正则匹配

帖子 #1 vicyang » 2019年01月30日 16:24

1楼索引

头像
vicyang
版主
版主
帖子: 56
注册时间: 2016年07月21日 20:35
拥有现金: 锁定
储蓄: 锁定
Has thanked: 7 times
Been thanked: 5 times
联系:

Re: [C++]regex正则匹配

帖子 #2 vicyang » 2019年01月30日 16:25

遍历输出匹配的子元素
Code: [全选] [展开/折叠] [Download] (regex.cpp)
  1. //regex_constants - STL pdf P726
  2. #include <iostream>
  3. #include <string>
  4. #include <regex>
  5.  
  6. using namespace std;
  7. int main(int argc, char *argv[] )
  8. {
  9.     string str("foo<1>bar<2>test\nnewline");
  10.    
  11.     smatch m;
  12.     bool found;
  13.     found = regex_search(str, m, regex("(\\d).*(\\d)", regex_constants::ECMAScript) );
  14.     if (found)
  15.         for (auto x:m) std::cout << x << endl;
  16.  
  17.     cout << endl;
  18.     found = regex_search(str, m, regex("(\\w+)<\\d>(\\w+)", regex_constants::ECMAScript) );
  19.     if (found)
  20.         for (auto x:m) std::cout << x << endl;
  21.     return 0;
  22. }


m[0] 类似 perl 中的 $&
m[1] m[2] 类似 perl 中的 $1 $2

代码: 全选

1>bar<2
1
2

foo<1>bar
foo
bar


回到 “C/C++”

在线用户

用户浏览此论坛: 没有注册用户 和 0 访客