印象中,不同语言的正则虽然基本规律类似,不过细节有所差别,建议查阅相关手册。
稍微翻了下QString、QRegExp的相关内容,下面的写法大体可以解决上述问题。
#include<QDebug>
#include<QRegExp>
int main(int argc, char* argv[])
{
QString str("Hello 3-9-2012 World 2-23-2012 12-23-2011 Tom 2012-1-9");
qDebug()<<str.replace(QRegExp("(\\d{1,2})-(\\d{1,2})-(\\d{4})"), "\\3-\\1-\\2");
return 0;
}