《Qt5+正则表达式匹配字符串或者限制编辑框输入字符串》

添加头文件

#include "QRegExp"
#include "QRegExpValidator"

关键代码

QRegExp regx("^[4-9]|[1-9][0-9]|[1-3][0-4][0-9]|350$");
QValidator *validator = new QRegExpValidator(regx,ui->lineEdit);
ui->lineEdit->setValidator(validator);

常用正则表达式,有些是没验证的 

    //1-100的正整数
    QRegExp regExp1("^1|[1-9][0-9]?|100$");
    //浮点数,不限制小数点位数
    QRegExp regx2("^(-?\\d+)(\\.\\d+)?$");
    //浮点数,限制小数点位数
    QRegExp regx3("^(-?\\d+)(\\.\\d{1,2})?$");
    //由数字和26个英文字母组成的字符串
    QRegExp regx3("^[A-Za-z0-9]+$");
    //由26个英文字母组成的字符串
    QRegExp regx4("^[A-Za-z]+$");
    //由26个英文字母的大写组成的字符串
    QRegExp regx5("^[A-Z]+$");
    //由26个英文字母的小写组成的字符串
    QRegExp regx6("^[a-z]+$");
    //由26个英文字母的小写组成的字符串
    QRegExp regx7("^[a-z]+$");
    //由数字、26个英文字母或者下划线组成的字符串
    QRegExp regx8("^\\w+$");
    //非负浮点数(正浮点数 + 0)
    QRegExp regx9("^\\d+(\\.\\d+)?$");
    //正浮点数
    QRegExp regx10("^0|([1-9]+(\\.[0-9]{1,2})?)$");
    //非正浮点数(负浮点数 + 0)
    QRegExp regx11("^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$");
    //整数
    QRegExp regx12("^-?\\d+$");
    //负整数
    QRegExp regx13("^-[0-9]*[1-9][0-9]*$");
    //非正整数(负整数 + 0)
    QRegExp regx14("^((-\\d+)|(0+))$");
    //正整数
    QRegExp regx15("^[0-9]*[1-9][0-9]*$");
    //非负整数
    QRegExp regx16("^\\d+$"); 

 

参考博客:

https://blog.csdn.net/SeekN/article/details/72448786

https://blog.csdn.net/dashumak/article/details/78401297

Qt中,你可以使用`QRegExp`类配合`QString`对象以及其提供的函数来进行正则表达式匹配和提取。如果你想获取字符串中特定符号(如逗号`,`、分号`;`等)之间的字符,可以按照以下步骤操作: 1. 创建一个`QRegExp`对象,并指定正则表达式模式。例如,如果你想要提取逗号分隔的值,模式可能是`\w+(,\w+)*`,其中`\w+`代表一个或多个单词字符字母数字或下划线),`(\w+,)+`表示一组由一个或多个单词字符和逗号组成的序列。 ```cpp QRegExp regex("\\w+(\\w+)?"); // 使用正斜杠对特殊字符转义 ``` 2. 初始化一个`QStringList`用于存储结果,因为`QRegExp`的匹配可能会找到多个子串。 ```cpp QStringList matchedValues; ``` 3. 使用`match()`或`search()`函数查找所有匹配项,并将它们添加到`QStringList`中。 ```cpp while (regex.indexIn(subject) != -1) { int start = regex.pos(); int end = regex.position() + regex.matchedLength() - 1; // 计算结束位置 matchedValues.append(subject.mid(start, end - start)); // 提取子串并添加到列表 regex.movePosition(QRegExp::NextMatch); // 移动到下一个匹配开始处 } ``` 4. `subject`变量应该是你想要匹配的原始字符串5. 使用完成后的`matchedValues`列表,你可以通过索引来访问每个匹配的子串。 注意:这个例子假设了你有一个名为`subject`的字符串,如果需要的话,你需要先读取用户的输入或者其他字符串源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值