我遇到此问题当我打开文本文件时,我无法获得任何匹配的字符串。然后我测试这个模式:。*但我可以得到任何东西。我确定可以读取文本文件,并且可以在grep中接受模式。谢谢。
QList<Nmap_result> ans;
QFile file(path);
if(!file.open(QFile::ReadOnly|QFile::Text))
{
exit(1);
}
QString text = file.readAll();
QRegExp reg(QRegExp::escape(".*"));
reg.indexIn(text);
qDebug()<<reg.capturedTexts().join("|")<<endl<<reg.captureCount()<<endl;
对不起,我不应该使用逃脱。但是当我改变它时:
QString text = file.readAll();
qDebug()<<text<<endl;
QRegExp reg("[0-9]");
//reg.indexIn(text); //first bind expr test
reg.exactMatch(text); //second bind expr test
qDebug()<<reg.capturedTexts().join("|!!!!!|")<<endl<<reg.captureCount()<<endl;
我用
reg.indexIn(text);
将此字符串绑定到regexp,它返回一个数字,但是当我使用下一个expr时
reg.exeacMatch(text);
我一无所获。
答案 0 :(得分:0)
为什么要拨打QRegExp::escape
方法?
请改为尝试:
QRegExp reg(".*");
调用QRegExp::escape
,您的正则表达式变得类似于此字符串:"\\.\\*"
。此字符串表示您要立即匹配一个点后跟一个星号。这不是用于此处:匹配零个或多个字符(.*
)。