我使用c++ regex library
遇到问题我在java
编写了一个简单的程序,它检查给定字符串与模式匹配的次数。它给出正确答案3
代码:
public class PatternMatch {
public static void main(String[] args) {
int count=0;
Pattern p = Pattern.compile("ab");
Matcher target = p.matcher("ababbaba");
while(target.find()){
count++;
}
System.out.println("Number of times : "+count);
}
}
输出:
Number of times : 3
但是现在我尝试在c ++中使用正则表达式库来实现相同的程序,但它的工作方式与我预期的不同。我给出一个像ababbaba
这样的目标字符串,它不像java那样计算,也不给出输出3
。我想解决这个问题,但我怎么能这样做
代码:
#include<iostream>
#include<string>
#include<regex>
using namespace std;
int main() {
bool check;
int count = 0;
regex Pattern("ab");
string target ="ababbaba";
smatch match;
check = regex_match(target, match, Pattern);
if(check){
count++;
}
cout << count << endl;
return 0;
}