在Qt中捕获标记内的数字

时间:2015-07-22 07:54:03

标签: c++ regex qt

我的标签结构如下所示:

<sml8/>

<smldigits (one or two)/>的组合 无论如何都要捕获标签内的数字?
例如在上面我想要捕获8内部

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

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

我猜它的方法不正确,它给了我数字的位置,虽然我想要数字(或数字)的值。

1 个答案:

答案 0 :(得分:1)

您需要将capturedTexts()<sml(\\d{1,2})/>正则表达式一起使用(它与字面上的<sml匹配,然后将1或2位数字捕获到捕获的组1中,然后/>:< / p>

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