您的位置:首页 > 其它

关于QRegExp如何筛选出特殊字符的解决方法

2018-02-09 16:30 169 查看
       已经是腊月二十四了,不出什么意外的话这是农历2017年的最后一篇博客。今年一点过年的氛围都没有,年味真的淡了呢。
       这几天写程序遇到一个小问题,在tableView中筛选字符的时候出现错误,鬼知道我是怎么发现这个问题的。功能就是类似于在同花顺的股票列表中筛选出带“中”字样的股票,然鹅,我发现筛选“*ST”的时候就不好使了。筛选使用的方法是QRegExp的setFilterRegExp方法,代码很简单:QRegExp regExp(text, Qt::CaseInsensitive, QRegExp::RegExp);//text就是要筛选的字符串
QSortFilterProxyModel->setFilterRegExp(resExp);
      所以想到问题可能是出在正则表达式中也包含“*”字符导致的筛选失败。找了半天找到一个合适的解决方法,就是在特殊字符前加上//或@就可以了,试了一下“@”可以,“//”不行text = text.replace("*", "@*");
QRegExp regExp(text, Qt::CaseInsensitive, QRegExp::RegExp);//text就是要筛选的字符串
QSortFilterProxyModel->setFilterRegExp(resExp);      希望能帮助到你,祝大家狗年旺旺喽!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: