IP正则

    QRegExp RegExp("^((25[0-5])|(2[0-4]\\d)|(1\\d\\d)|([1-9]\\d)|\\d)");
    QStringList StringSplit = StringLine.split(".");
    int count =0;
    bool Adopt=true;
    auto StringInterator = StringSplit.begin();
    int CursorPosition = ui->lineEdit->cursorPosition();

    while(StringInterator != StringSplit.end())
    {
        count++;
        if(!RegExp.exactMatch(*StringInterator++))
        {
            Adopt = false;
            continue;
        }
    }

    if(Adopt&&(4==count))
    {
        QString StrtoInt;
        QString *TmpString;
        for(int i=0;i<4;i++)
        {
            TmpString = new QString(StringSplit.at(i));
            StrtoInt+=QString::number(TmpString->toInt(&Adopt,10));
            delete TmpString;
            StrtoInt+=i<3?".":"";
        }
        ui->lineEdit->setText(StrtoInt);
        m_ipString = StrtoInt;
    }
    else
    {
        CursorPosition--;
        ui->lineEdit->setText(m_ipString);
    }
    ui->lineEdit->setCursorPosition(CursorPosition);


基本思想:
记录光标位置
把原有字符串以  "."  拆分
利用正则表达式对拆分后字符串对比
如果4个字符串都是true
把拆分后的字符串转换为数字[去零]
每个字符串后面都加上  "."
记录下当前正确IP
输出IP
否则
光标位置前移一位
输出正确的IP
调正光标至原来位置


IPv6的正则表达式可以根据不同的需求来编写。以下是一个示例的IPv6正则表达式: ^(?:[A-F0-9]{1,4}:){7}[A-F0-9]{1,4}$ 这个正则表达式IPv6地址分为8个16位的块,每个块由一个冒号分隔开。每个块由十六进制数字(A-F)和数字(0-9)组成。这个正则表达式只适用于标准的IPv6地址格式,不包括压缩的IPv6地址。 请注意,正则表达式只能验证IPv6地址的格式是否正确,无法验证地址的有效性。如果您需要验证一个IPv6地址的有效性,可以使用特定的编程语言和库,如C#的IpAddress.TryParse()方法进行更准确的验证。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [IPV4和IPV6正则表达式的深入讲解](https://download.csdn.net/download/weixin_38629801/14621756)[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: 33.333333333333336%"] - *2* [IPv6Regex:PowerShell脚本将IPv6地址与测试IPv6正则表达式和.Net TryParse方法进行匹配](https://download.csdn.net/download/weixin_42117224/18374821)[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: 33.333333333333336%"] - *3* [js:校验IPv6地址的正则表达式](https://download.csdn.net/download/weixin_38520275/14903291)[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: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鱼游戏开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值