I got it...and it captures the entire string. Here's the code and the output.
QString str1
= "USER ACTION: do this";
QString str2
= "USER VERIFY: DO SOMETHING ELSE";
QRegExp reg
("^((\\bUSER\\b)(\\s)(\\bACTION:\\b?))(.*$)|((\\bUSER\\b)(\\s)(\\bVERIFY:\\b?))(.*$)|((\\bSTEP\\b)(\\s)(\\bNUMBER:\\b?))(.*$)");
int ireturn = reg.indexIn(str, 0);
std::cout << ireturn << std::endl;
ireturn = reg.indexIn(str1, 0);
std::cout << ireturn << std::endl;
QString captured
= reg.
cap( 0 );
// captured == "letter" std::cout << captured.toStdString() << std::endl;
ireturn = reg.indexIn(str2, 0);
std::cout << ireturn << std::endl;
captured = reg.cap( 0 ); // captured == "letter"
std::cout << captured.toStdString() << std::endl;
ireturn = reg.indexIn(str3, 0);
std::cout << ireturn << std::endl;
captured = reg.cap( 0 ); // captured == "letter"
std::cout << captured.toStdString() << std::endl;
QString str = "User Action:";
QString str1 = "USER ACTION: do this";
QString str2 = "USER VERIFY: DO SOMETHING ELSE";
QString str3 = "STEP NUMBER: 1";
QRegExp reg ("^((\\bUSER\\b)(\\s)(\\bACTION:\\b?))(.*$)|((\\bUSER\\b)(\\s)(\\bVERIFY:\\b?))(.*$)|((\\bSTEP\\b)(\\s)(\\bNUMBER:\\b?))(.*$)");
int ireturn = reg.indexIn(str, 0);
std::cout << ireturn << std::endl;
ireturn = reg.indexIn(str1, 0);
std::cout << ireturn << std::endl;
QString captured = reg.cap( 0 ); // captured == "letter"
std::cout << captured.toStdString() << std::endl;
ireturn = reg.indexIn(str2, 0);
std::cout << ireturn << std::endl;
captured = reg.cap( 0 ); // captured == "letter"
std::cout << captured.toStdString() << std::endl;
ireturn = reg.indexIn(str3, 0);
std::cout << ireturn << std::endl;
captured = reg.cap( 0 ); // captured == "letter"
std::cout << captured.toStdString() << std::endl;
To copy to clipboard, switch view to plain text mode
Output Produced:
-1
0
USER ACTION: do this
0
USER VERIFY: DO SOMETHING ELSE
0
STEP NUMBER: 1
Bookmarks