QString split with QRegExp
Im trying to get the parameters of a C function by using QString split method with QRegExp.
The string contains the text between the function parentheses so I need to extract the parameters that are separated by commas.
I tried the following (tested with rubular.com):
@1, foo(1,2), 3@
Which give me the correct result.
Now, with Qt:
QString testStr = "1, foo(1,2), 3";
QStringList arguments = testStr.split(QRegExp("([^,]+\(.+\))|([^,]+)"));
qDebug() << "TEST STRING" << testStr << "ARGS" << arguments << "count =" << arguments.count();
And this is what I get:
@TEST STRING "1, foo(1,2), 3" ARGS ("", ",", ",", "") count = 4@
Am I missing something?
Hi, if you have access to Qt 5 you should try QRegularExpression instead of QRegExp, the new class QRegularExpression is more standard compliant to perl regex syntax and might fix your problem.
I didn't check your regex yet, but if you say it works with other regex tools it might be worth a try.