QT从3个连续括号中捕获数据

时间:2014-07-29 06:44:36

标签: regex windows qt

我在一个文件中有字符串,我想用正则表达式提取数据

Friday 29 July 2014_06:34:56  IST [GPS   ] [18.2463  ] [72.6321   ]   device status [OK] [13] [wait10] connected.

//我希望获得GPS,LATT,LONG等等。

QStringList data;

data[0]="[GPS   ]";

data[1]="[18.245  ]";

data[2]="[72.234  ]";

但我得到单个字符串

data[0]=**"[GPS   ] [18.245  ] [72.234  ]"**

我不想使用拆分

//目前正在使用

**QRegExp exp("((\\[.*\\])+ )");** 

提前致谢

1 个答案:

答案 0 :(得分:1)

非贪婪的正则表达式可以解决您的问题:

您的正则表达式**QRegExp exp("((\\[.*\\])+ )");**将匹配左括号和右括号之间的所有内容,但.*是贪婪的并且会匹配到结尾然后再进行反步

如果你使用**QRegExp exp("((\\[.*?\\])+ )");**它只会匹配第一个右括号的字符,这就是你想拥有的。