QT正则表达式小例子

判断合法IP的QT正则表达式:

 

bool IsIPaddress(QString ip)

{

    QRegExp rx2("(//d+)(//.)(//d+)(//.)(//d+)(//.)(//d +)");

 

    int pos = rx2.indexIn(ip);


    if(pos>-1)
    {

         for(int i=0;i<4;i++)
        {
            if( rx2.cap(i*2+1).toInt()>=255 )
            {
                QMessageBox::information(this, tr("错误"), tr("IP地址错误"));

                return false;

            }
        }

 

        if(rx2.cap(7).toInt()==0)
        {           

            QMessageBox::information(this, tr("错误"), tr("IP地址错误"));

            return false;

        }

        if(rx2.cap(7).toInt()==0)
        {
            QMessageBox::information(this, tr("错误"), tr("IP地址错误"));

            return false;

        }
    }
    else
    {

        QMessageBox::information(this, tr("错误"), tr("IP地址错误"));

        return false;

    }

 

    return true;

}

 

判断IP地址更简单的方式是:

    QRegExp rx2("^([1]?/d/d?|2[0-4]/d|25[0-5])/.([1]?/d/d?|2[0-4]/d|25[0-5])/.([1]?/d/d?|2[0-4]/d|25[0-5])/.([1]?/d/d?|2[0-4]/d|25[0-5])$")

 

    if( !rx2.exactMatch(ip) )

    {

          QMessageBox::information(this, tr("错误"), tr("ip地址错误"));

          return false;

    }

    return true;

 

 

判断文件名是否含有字母、数字、下划线之外的字符:

 

bool IsRightFilename(QString filename)

{

    QRegExp rx("[A-Za-z_0-9]+");

 

    if( !rx.exactMatch( filename) )

    {

          QMessageBox::information(this, tr("错误"), tr("文件名含有其他字符或中文字符"));

          return false;

    }

    return true;

}

 

QT6中,可以使用QRegularExpression类来处理正则表达式。为了使用正则表达式,需要引入Qt正则表达式模块。可以使用以下代码来实现正则表达式的匹配: ```cpp #include <QRegularExpression> #include <QDebug> int main() { QString str = "Hello World!"; QRegularExpression regex("Hello"); if (regex.match(str).hasMatch()) { qDebug() << "Matched" << endl; } else { qDebug() << "Not Matched" << endl; } return 0; } ``` 在这个例子中,我们首先创建了一个QRegularExpression对象,然后使用match()函数来检查给定的字符串是否与正则表达式匹配。如果匹配成功,那么就会输出"Matched",否则输出"Not Matched"。这是一个简单的例子,你可以根据自己的需求来调整正则表达式。 除了匹配,QT6还提供了其他功能,比如替换、捕获组等。你可以通过查阅QT6的官方文档来了解更多关于正则表达式的用法和应用场景。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Qt 如何使用正则表达式 正则表达式 密码 email](https://blog.csdn.net/linbounconstraint/article/details/101867387)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [如何在QT中使用正则表达式](https://blog.csdn.net/Hyc_cheng/article/details/112132963)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值