我已经查看了C ++ 11 regex库的documentation,并且似乎在其regex_search()方法的运行时找不到任何内容。假设我有一个长度为n的字符串和一个长度为m的模式,如何分析此搜索的复杂性?
下面是使用此方法查找和打印字符串为字母字母和数字的情况的示例:
我如何找到它的运行时?
string s = "h2ello1";
regex re("[a-z]{1}[0-9]{1}");
smatch m;
while(regex_search(s,m,re)){
cout << m[0] << endl;
m.suffix().str();
};
编辑:前面的很多问题都提到“构建确定性有限自动机”,这可能会导致运行时,但我只使用C ++ 11库。是否实现相同?我知道绝对不是线性时间,因为它很慢。