基本知识
注意:C++编译器会对反斜杠进行转换,要想在正则表达式中包括一个\,需要输入两次,例如\\s。要想匹配反斜杠本身,需要输入4次,比如\\\\。
匹配[1-9999] 第一个数字是1-9加后面0-3个任意数字
QRegExp rx("[1-9]\\d{0,3}");
匹配[1-30]
SetRegExp("[1-2]\\d{0,1}|[1-9]|30")
匹配ip是否有效
QRegExp regExp("((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)");
if (!regExp.exactMatch(strIP) || !regExp.exactMatch(strSubNetMask))
{
QMessageBox::information(this, "提示", "IP地址获取子网掩码错误");
return;
}
端口号正则表达式(最前的1改成0表示通道可以为0)
QRegExp rxp("^([1-9]|[1-9]\\d|[1-9]\\d{2}|[1-9]\\d{3}|[1-5]\\d{4}|6[0-4]\\d{3}|65[0-4]\\d{2}|655[0-2]\\d|6553[0-5])$");
输入可见字符(除去空格 回车 ...)
QRegExp rxp("^\\w+\\S+$");
0-100的保留两位小数正则表达式
QRegExp rxp("^(100|0?[0-9]?\\d(\\.\\d{1,2})?)$");
只能输入数字
QRegExp rxp("^[0-9]*$");
匹配非负整数(正整数 + 0)
^\d+$
匹配正整数
^[0-9]*[1-9][0-9]*$
匹配非正整数(负整数 + 0)
^((-\d+)|(0+))$
匹配负整数
^-[0-9]*[1-9][0-9]*$
匹配整数
^-?\d+$
匹配非负浮点数(正浮点数 + 0)
^\d+(\.\d+)?$
匹配正浮点数
^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
匹配非正浮点数(负浮点数 + 0)
^((-\d+(\.\d+)?)|(0+(\.0+)?))$
匹配负浮点数
^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
匹配浮点数
^(-?\\d+)(\\.\\d+)?$
匹配由26个英文字母组成的字符串
^[A-Za-z]+$
匹配由26个英文字母的大写组成的字符串
^[A-Z]+$
匹配由26个英文字母的小写组成的字符串
^[a-z]+$
匹配由数字和26个英文字母组成的字符串
^[A-Za-z0-9]+$
匹配由数字、26个英文字母或者下划线组成的字符串
^\w+$
匹配email地址
^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$
匹配url
^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$
匹配html tag
<\s*(\S+)(\s[^>]*)?>(.*?)<\s*\/\1\s*>
不想转义可以加R
QRegExp rx(R"(^\d\d?$)");