QT正则表达式---针对IP地址
判断合法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;
}
使用正则表达式检验IP的合法性。转自:http://yleesun.blog.163.com/blog/static/29413402200952464324323/
正则表达式:
ipLabel = new QLabel(tr("IP Address:"));
ipLineEdit = new QLineEdit;
ipLabel->setBuddy(ipLineEdit);
QValidator *validator = new QRegExpValidator(rx, this);
ipLineEdit->setValidator(validator);
ipLineEdit->setInputMask("000.000.000.000;");
#include <qwidget.h>
#include <qstring.h>
#include <qlineedit.h>
#include <qvalidator.h>
#define IP_H
class IP : public QWidget
{
public:
IP ( const QString & text, QWidget *parent, const char *name );
QString getValue();
private:
QLineEdit * ip[4];
QIntValidator * ipv[4];
};
//ip.cpp
#include <qwidget.h>
#include <qlabel.h>
#include <qfont.h>
#include <qhbox.h>
#include <qlineedit.h>
#include "ip.h"
IP::IP(const QString & text, QWidget *parent, const char *nombre) : QWidget(parent, nombre, 0)
{
QFont *fuente = new QFont("Arial", 14, QFont::Normal);
fuente->setPixelSize(14);
QLabel *label = new QLabel( this );
label->setFont(* fuente);
label->setMinimumWidth(140);
label->setMaximumWidth(140);
QHBox * ipp = new QHBox((QWidget*) this);
ipp->setMinimumWidth(140);
ipp->setMaximumWidth(140);
for (int i=0; i<4; i++)
{
ip = new QLineEdit((QWidget*) ipp, nombre);
ip->setFont(* fuente);
ip->setMinimumWidth(30);
ip->setMaxLength(3);
ipv = new QIntValidator(0, 255, (QObject*)ipp);
ip->setValidator(ipv);
}
label->move(0, 0);
ipp->move(150, 0);
label->setText(text);
// ip->setInputMask("000.000.000.000; ");
}
QString IP::getValue()
{
bool flag = false;
for (int i=0; i<4; i++)
if ( ip->text().isEmpty() )
flag = true;
if (flag)
return QString("0.0.0.0");
else
return QString(ip[0]->text()+ "." + ip[1]->text() + "." + ip[2]->text() + "." +
ip[3]->text());
}
QRegExpValidator v(rx, 0);
QLineEdit le;
le.setValidator(&v);
le.setInputMask("000.000.000.000;0");//只要加上;0保证有默认值即可使得正则和mask同时生效。
QT正则表达式---针对IP地址的更多相关文章
- 正则表达式检测IP地址与端口号是否合法
正则表达式检测IP地址与端口号是否合法,代码如下: 正则表达式检测IP地址 public static bool CheckAddress(string s) { bool isLegal = fal ...
- 使用正则表达式匹配IP地址
IP地址分为4段,以点号分隔.要对IP地址进行匹配,首先要对其进行分析,分成如下部分,分别进行匹配: 第一步:地址分析,正则初判 1.0-9 \d 进行匹配 2.10-99 [1-9]\d 进行匹 ...
- python中利用正则表达式匹配ip地址
现在有一道题目,要求利用python中re模块来匹配ip地址,我们应如何着手? 首先能想到的是ip地址是数字,正则表达式是如何匹配数字的呢? \d或[0-9] 对于这个问题,不要一下子上来就写匹配模式 ...
- grep使用正则表达式搜索IP地址
递归搜索当前目录及其子目录.子目录的子目录……所包含文件是否包含IP地址 grep -r "[[:digit:]]\{1,3\}\.[[:digit:]]\{1,3\}\.[[:digit: ...
- qt获取网络ip地址的类
最近在学习qt网络编程,基于tcp和udp协议. 看了一些别人的程序和qt4自带的例子,困扰我最大的问题就是获取ip的类,总结起来还挺多的. 主要介绍常用的QtNetwork Module中的QHos ...
- python 正则表达式匹配IP地址
一.实验环境 1.Windows7x64_SP1 2.anaconda2.5.0 + python2.7(anaconda集成,不需单独安装) 3.pyinstaller3.0 二.实验目的 从tex ...
- 正则表达式验证IP地址(绝对正确)
正则验证合法_有效的IP地址(ipv4/ipv6) 不墨迹直接上代码: 正则表达式: /^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[ ...
- python 利用正则表达式获取IP地址
例:import retest= '$MYNETACT: 0,1,"10.10.0.9"'pattern =re.compile(r'"(\d+\.\d+\.\d+\.\ ...
- 正则表达式判断ip地址
html: <div class="configuration"><form action="" name="myformcon&q ...
随机推荐
- html中编写js的方式
第一种:引用外部的js文件 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http ...
- linux修改主机名-IP
1.查看当前主机名 hostname 2. ifconfig 显示所有网络接口的信息 ifconfig eth0 显示网卡eth0的信息 3.临时修改主机名 hostname rusky. ...
- Selenium2学习之-环境搭建
1.下载安装Eclipse 2.下载并配置jdk环境变量 2.1 介绍一下环境变量设置 2.1.1 点击环境变量 2.1.2 新增系统变量JAVA_HOME 变量名:JAVA_HOME 变量值:C:\ ...
- html hack 列表
<!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]--> <!--[if IE]> 所有的IE可识别 <![ ...
- spring-security 登陆认证之初次探究
首先,希望还对 spring-security框架完全不懂的新手 下载下Git源码. 引入到项目中.这个短文就是边看源码边聊的.也会启动下项目验证自己的推想. 一.登陆认证的登陆配置项 <for ...
- 127.0.0.1与localhost与ip的区别
127.0.0.1与localhost与ip的区别 May 18, 2014 localhost 不联网不使用网卡,不受防火墙和网卡限制本机访问 一般使用 本地套接字文件AF_UNIX 应用程序一般约 ...
- Sudoku Killer
算法:深搜 自从2006年3月10日至11日的首届数独世界锦标赛以后,数独这项游戏越来越受到人们的喜爱和重视. 据说,在2008北京奥运会上,会将数独列为一个单独的项目进行比赛,冠军将有可能获得的一份 ...
- 记录一下最近开发web移动前端的过程
两个项目 第一个是公司网站的移动端,我所在的公司是做某方面的新闻站的. 所以说页面基本是以一条条的新闻+图文混排为主,顶部有一个自动slider+触屏滑动的功能, 使用的是swipe插件,轻量,简洁非 ...
- PHP扩展开发(3)-config.m4
1. 宏命令 1.1. dnl 注释 1.2. 扩展的工作方式 1.2.1) PHP_ARG_WITH不需要第三方库 1.2.2) PHP_ARG_E ...
- div弹出登录窗口
<meta charset="utf-8"/> <script type="text/javascript"> //弹出式登录 func ...