Pcrecpp匹配

时间:2013-02-24 23:18:24

标签: c++ pcre

我使用pcrecpp c ++(PCRE lib)
我需要在周期中获得所有比赛。我该怎么办?

例如模式:
“你好”

和主题:
“你好,你好,你好”

循环应循环3次(因为3次匹配)
你好 你好 3你好

伪代码

pcrecpp::RE pPattern ( "hello" );  
std::string strBase = "hello hello hello";  
// ...  
int iMatches = // Match count 
for ( int i = 1; i < iMatches; i++ )   
{  
    printf( "%d %s", i, pPattern[ i ].c_str () );  
}

请给我一些示例代码,了解如何使用pcrecpp.h。
对不起,我的英语不好。

1 个答案:

答案 0 :(得分:3)

虽然这个问题已经有几个月了,但我会在这里提供一个解决方案:

#include <pcrecpp.h>
#include <iostream>

int main(void)
{
  pcrecpp::RE regex("(hello)");  
  std::string strBase = "hello hello hello";  

  pcrecpp::StringPiece input(strBase);

  std::string match;

  int count = 0;
  while (regex.FindAndConsume(&input, &match)) {
    count++;
    std::cout << count << " " << match << std::endl;
  }
}

有关详细信息,this site可能有所帮助。