c++ - QRegExp html行

标签 c++ regex qt

我对 QRegExp 类没有任何问题,但现在我有了一个。 我的代码

QRegExp re("d class=\\.green\\.>([+,0-9]+)<.td><td>[.0-9]+<.td><td>[.0-9]+<..n");
QString str=AliorLinia;

qDebug()<<str;
QStringList list;
int pos=0;

while((pos=re.indexIn(str, pos))!=-1){
    list << re.cap(1);
    pos+=re.matchedLength();
}

qDebug()<<list;

控制台显示

enter image description here

,str 行在屏幕上

控制台应该显示 +0,10 但它只显示 () 为什么 :(?

最佳答案

你没有得到匹配,因为你真正的文字字符串看起来像

d class="green">+0.10</td><td>69.7</td><td>69.0</
<NEWLINE>

您在调试器中看到的 \"\n 只是告诉您 string literal 包含文字双引号和换行符符号(十进制代码为 10 的字符)。

此外,您的号码包含一个 .,而不是 , 作为小数分隔符,因此您必须将其添加到 [+,0-9] 字符类。

因此,经过最少修改的正则表达式看起来像

QRegExp re("d class=.green.>([+.,0-9]+)<.td><td>[.0-9]+<.td><td>[.0-9]+<.\n");

参见 the regex demo

关于c++ - QRegExp html行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43441129/

相关文章:

java - 使用正则表达式在单个字符后删除零

python - 正则表达式前瞻和后瞻

c++ - Qt : multiple defined symbols found

c++ - Qt ListView 不显示 C++ 模型内容

c++ - Vtk图表在QT中中断, “no override found for ' vtkContextDevice2D”

c++ - PCduino - NFC/RFID HSU

c++ - STD 算法如何处理 lambda 指针?

c++ - 如何在 C++ 中将字符串转换为 HexBytes 数组?

javascript - 使用jquery将字符串数据中所有大写单词的第一个字母向上

c++ - 访问 CV_32SC1 nx1 opencv 矩阵