\d | 匹配一个数字,等同于[0-9] |
\. | 匹配一个小数点 |
? | 表示重复前面内容的0次或1次 |
2[0-4]\\d | 涵盖了200~249之间的值 |
25[0-5] | 涵盖了250~255之间的值 |
[01]?\\d\\d? | 涵盖了0~199之间的值 |
例:
#include <QApplication>
#include <QLineEdit>
#include <QRegExpValidator>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QLineEdit lineEdit;
// 创建一个正则表达式,例如只允许输入数字
QRegExp regex("^[0-9]*$");
QRegExpValidator *validator = new QRegExpValidator(regex, &lineEdit);
// 设置验证器
lineEdit.setValidator(validator);
lineEdit.show();
return app.exec();
}
解释:
-
QRegExp: 用于定义正则表达式。在上面的示例中,
"^[0-9]*$"
表示只允许输入数字。 -
QRegExpValidator: 用于将正则表达式应用于
QLineEdit
,确保输入符合规定的格式。 -
setValidator: 将创建的验证器设置给
QLineEdit
,使其开始生效。
常见正则表达式示例:
- 仅数字:
^[0-9]*$
- 仅字母:
^[a-zA-Z]*$
- 数字和字母:
^[a-zA-Z0-9]*$
- 邮箱地址:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$
- 电话号码:
^\\+?[0-9 ]{7,15}$