Как я могу оценить временную сложность соответствия регулярному выражению с помощью boost?
Зависит ли это только от продолжительности и повторяемости или что-то еще связано?
Например, давайте предположим, что у меня есть это регулярное выражение, соответствующее любой буквенно-цифровой строке
[A-Za-z0-9]+
и у меня есть такая функция
bool isAlphanumerical(string str){
return boost::regex_match(str, "[A-Za-z0-9]+");
}
есть ли способ сказать, какова его временная сложность?
что делать, если я добавлю несколько таких случаев (я также изменил прежнее регулярное выражение, чтобы сопоставлять только комбинации цифр и заглавных букв):
[A-Z0-9]+$|\s*$|_*$
чтобы я мог сопоставлять строки только с пробелами или переносами?
А что, если я тоже вернусь к такой схеме
(?i)[A-Z0-9]+$|\s*$|_*$