我在一个文件中有字符串,我想用正则表达式提取数据
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("((\\[.*\\])+ )");**
提前致谢
答案 0 :(得分:1)
非贪婪的正则表达式可以解决您的问题:
您的正则表达式**QRegExp exp("((\\[.*\\])+ )");**
将匹配左括号和右括号之间的所有内容,但.*
是贪婪的并且会匹配到结尾然后再进行反步
如果你使用**QRegExp exp("((\\[.*?\\])+ )");**
它只会匹配第一个右括号的字符,这就是你想拥有的。