Предположим, у меня есть этот простой регулярное выражение поиска кусок кода:Как узнать, захвачена ли какая-либо необязательная часть регулярного выражения?
boost::regex re("(\\d+)(/(\\d))?");
boost::smatch matches;
boost::regex_search(input_str, matches, re);
Он ищет строку на что-то вроде 123/2
или 123
. Вторая цифра и/являются необязательными.
Я хочу знать, что если /2
присутствует или нет, и если он существует, установите второе число после/в переменную или установите переменную равным -1 в противном случае.
Я попытался использовать matches.size()
, но это всегда одно и то же значение, независимо от того, существует ли вторая часть или нет.