QT中正则表达式过滤时间以及string编码转换

#include "mainwindow.h"
#include <QApplication>
#include<QTextCodec>
//#pragma execution_character_set("utf-8")  //放开这句话
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
    MainWindow w;
    w.show();

    return a.exec();
}

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QRegExp>
#include<QString>
#include<QDebug>
#include<QTextCodec>
#include<stdio.h>
#include<iostream>
using namespace std;
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
   QString str = QString("2012年11月09日  11时23分36秒  师父父");
   qDebug()<<"----------------------"<<endl;
    qDebug()<<"str to utf8 "<<str.toUtf8();
    qDebug()<<"sssssssssss"<<QString::fromLocal8Bit(str.toUtf8());
    qDebug()<<"str to toLatin1 "<<str.toLatin1();
    qDebug()<<"str to toLocal8Bit "<<str.toLocal8Bit();
   //QString src = UTF82GBK(str.toUtf8());
//    QString str = QStringLiteral("2012-11-09 11:14:13  wtg");
// QTextCodec *utf8 = QTextCodec::codecForName("UTF-8");
//    QString str_utf8 =  utf8->toUnicode(str.toUtf8());

    //qDebug()<<"_____________________________"<<src;
   // QRegExp rg("^\\d{4}-\\d{1,2}-\\d{1,2}");
 //   QRegExp rg("^\\d{4}(-|[\\u4e00-\\u9fa5]{0,})\\d{1,2}(-|[\\u4e00-\\u9fa5]{0,})\\d{1,2}(\\s|[\\u4e00-\\u9fa5]{0,})\\s{0,}\\d{1,2}(:|[\\u4e00-\\u9fa5]{0,})\\d{1,2}(:|[\\u4e00-\\u9fa5]{0,})\\d{1,2}\\s{0,}");
    QRegExp rg("^\\d{4}\\D*\\d{1,2}\\D*\\d{1,2}\\D*\\s{0,}\\d{1,2}\\D*\\d{1,2}\\D*\\d{1,2}(\\s|\\D)\\s{0,}");
//QRegExp rg("^\\d{4}(-|[^\\x00-\\xff])\\d{1,2}(-|[^\\x00-\\xff])\\d{1,2}[^\\x00-\\xff]\\s{0,}\\d{1,2}(:|[^\\x00-\\xff])\\d{1,2}(:|[^\\x00-\\xff])\\d{1,2}\\s{0,}");
    //str = str.toLocal8Bit().remove(rg);
      // qDebug()<<"index is "<<src.indexOf(rg);
  //   src = QString(str.toUtf8().toStdString().data()).remove(rg);
    //QString st = QString::fromLocal8Bit(src.toUtf8());
    //qDebug()<<"_____________________________"<<st;
   qDebug()<<"_____________________________"<<str;
//   cout<<src.toStdString();
 //  src = UTF82GBK(src.toUtf8());
  // qDebug()<<"_____________________________"<<src;
    qDebug()<<"____________________________________________________";
  char tw[512] = "2011年11月09日11时23分36  王微微";
  // char tw[512] = "2011-11-09  11:23:36    中国年";
   qDebug()<<"the char [] is "<<tw;
   QString tw_str = QString::fromLocal8Bit(tw);
   qDebug()<<"the str1   is "<<tw_str;
    if(tw_str.contains("年"))
        qDebug()<<"!!!!!!!!!!!!!!!!!!!!!!!!";
//   QString src1  = GBK2UTF8(tw_str.toUtf8());
//   qDebug()<<"after tarn "<<src1;
//   qDebug()<<"UTF82GBK  : "<<UTF82GBK(src1.toUtf8());
  tw_str = tw_str.remove(rg);
  if(tw_str.contains(rg))
      qDebug()<<"wtg";
   //tw_str = QString(tw_str.toStdString().data()).remove(rg);
   qDebug()<<"remove str  is "<<tw_str;
}

MainWindow::~MainWindow()
{
    delete ui;
}
 QString MainWindow::GBK2UTF8(QByteArray &inStr)
{
    QTextCodec *gbk = QTextCodec::codecForName("gbk");
    QTextCodec *utf8 = QTextCodec::codecForName("UTF-8");

    char *p = inStr.data();
    QString str = gbk->toUnicode(p);
    qDebug()<<"GBK2UTF8 "<<str;
    QByteArray utf8_bytes=utf8->fromUnicode(str);
    p = utf8_bytes.data();
    str = p;
    qDebug()<<"GBK2UTF8 "<<str;
    return str;

}

 QString MainWindow::UTF82GBK(QByteArray &inStr)
{
    QTextCodec *gbk = QTextCodec::codecForName("gbk");
    QTextCodec *utf8 = QTextCodec::codecForName("UTF-8");

    char *p = inStr.data();
    QString str = utf8->toUnicode(p);

    QByteArray utf8_bytes=gbk->fromUnicode(str);
    p = utf8_bytes.data();
    str = p;

    return str;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值