我的标签结构如下所示:
<sml8/>
<
,sml
,digits (one or two)
和/>
的组合
无论如何都要捕获标签内的数字?
例如在上面我想要捕获8内部
我已经定义了正则表达式,我试图通过数字位置捕获它,但它不适用于我。
QRegExp rxlen("<sml(.*)/>");
int index = rxlen.pos(3);
我猜它的方法不正确,它给了我数字的位置,虽然我想要数字(或数字)的值。
答案 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];