用法:

QRegExp qreg_exp(“[^A-Za-z0-9\u4e00-\u9fa5]”); //字母和中文和数字以外的字符

//^顶在前面 表示除。。。之外

// A-Z 代表大写 a-z代表小写字符 0-9表示数字 \u4e00-\u9fa5表示所有中文 直接连在一起表示&& 在最前面加个^ 表示除这些字符以外的字符

QString new_str = name.remove(qreg_exp);

也可以使用单字符

比如QString qreg_exp_str = “[,,/^ -]”; 就是选择, ,/ ^-这几个单字符

这里要注意 (空格字符别放在开始和结尾 别贴近"[“和”]" 要不然识别不了这个字符) 和编码 基本正则表达基本用法就好了

下面是特殊字符本身在正则表达式的应用 比如 -和^出现要替换成 -和^

正则表达式匹配
QString strIPExp=QString::fromLocal8Bit(“IPv4 地址 . . . . . . . . . . . . : [\d.]*”);
QRegExp ipRegExp(strIPExp, Qt::CaseInsensitive);
ipRegExp.indexIn(msg);//从指定字符串中查找匹配字符串位置
ipRegExp.cap(0);//取出匹配到的第一个字符串

示例:

//查找出ipv4地址
void MainWindow::on_pushButton_clicked()
{
    /*
    "Windows IP 配置\r\n\r\n\r\n以太网适配器 以太网:\r\n\r\n
    媒体状态  . . . . . . . . . . . . : 媒体已断开连接\r\n   连接特定的 DNS 后缀
    . . . . . . . : \r\n\r\n无线局域网适配器 本地连接* 1:\r\n\r\n   媒体状态
    . . . . . . . . . . . . : 媒体已断开连接\r\n   连接特定的 DNS 后缀
    . . . . . . . : \r\n\r\n无线局域网适配器 本地连接* 10:\r\n\r\n   媒体状态
    . . . . . . . . . . . . : 媒体已断开连接\r\n   连接特定的 DNS 后缀 . . . . . . . :
    \r\n\r\n
    无线局域网适配器 WLAN:\r\n\r\n   连接特定的 DNS 后缀 . . . . . . . : \r\n   IPv6 地址 . . . . . . . . . . . . : 2409:8a3c:f4a:a420:3048:de20:5bb8:d6ea\r\n   临时 IPv6 地址. . . . . . . . . . : 2409:8a3c:f4a:a420:985d:eca:5dc0:1b17\r\n
    本地链接 IPv6 地址. . . . . . . . : fe80::3048:de20:5bb8:d6ea%17\r\n   IPv4 地址 . . . . . . . . . . . . : 192.168.1.8\r\n   子网掩码  . . . . . . . . . . . . : 255.255.255.0\r\n   默认网关. . . . . . . . . . . . . : fe80::1%17\r\n                                       192.168.1.1"
    */
    QString ip ="";
    QString msg="";
    QProcess cmd;
    cmd.start("ipconfig");
    cmd.waitForReadyRead();
    msg = QString::fromLocal8Bit(cmd.readAllStandardOutput()).trimmed();
    int index =msg.indexOf("WLAN:");
    if(index!=-1)
    {
        msg = msg.mid(index);
    }
    QString strIPExp=QString::fromLocal8Bit("IPv4 地址 . . . . . . . . . . . . : [\\d.]*");
    QRegExp ipRegExp(strIPExp, Qt::CaseInsensitive);
    if (ipRegExp.indexIn(msg) != -1) {
      ip = ipRegExp.cap(0);
      ip = ip.right(ip.size()-QString::fromLocal8Bit("IPv4 地址 . . . . . . . . . . . . : ").size());
    }

    qDebug()<<ip;
}

更多推荐

qt之QString正则表达式