在Qt中捕获标签内的数字

Capture number inside tag in Qt

本文关键字:数字 标签 Qt      更新时间:2023-10-16

我的标签结构是这样的:

<sml8/>

<, sml, digits (one or two)/>的组合是否有办法在标签内捕获数字?例如,在上面的
中,我想在

中捕获8

我已经定义了正则表达式,我试图通过数字位置捕获它,但它不适合我。

QRegExp rxlen("<sml(.*)/>");
int index = rxlen.pos(3);

我猜这是不正确的方式,它给了我数字的位置,虽然我想要一个数字的值

您需要将capturedTexts()与<sml(\d{1,2})/> regex一起使用(它从字面上匹配<sml,然后1或2个数字将它们捕获到已捕获组1中,然后/>:

QString str = "<sml8/>";
QRegExp rxlen("<sml(\d{1,2})/>");
int pos = rxlen.indexIn(str);
QStringList list = rxlen.capturedTexts();
QString my_number = list[1];