qt实现0.100~90.00的正则表达式
时间: 2023-07-15 15:14:56 浏览: 109
你可以使用QRegExp类来实现该正则表达式。
下面是一段示例代码:
```cpp
QRegExp rx("^([0-9]|[1-8][0-9]|90)(\\.\\d{1,2})?$");
QString str = "89.99";
if (rx.exactMatch(str)) {
qDebug() << "Matched";
} else {
qDebug() << "Not matched";
}
```
这个正则表达式可以匹配0.100到90.00之间的数字,包括整数和小数,小数点后最多两位。
解释一下正则表达式:
- `^`:匹配字符串的开始位置。
- `([0-9]|[1-8][0-9]|90)`:匹配0到90之间的整数。由于正则表达式中不支持范围表达式,所以需要列举每一个可能的整数,如0、1、2、...、9、10、11、...、89、90。
- `(\\.\\d{1,2})?`:匹配小数部分,包括小数点和最多两位数字,用问号表示可选。
- `$`:匹配字符串的结尾位置。
注意,在Qt中使用正则表达式时,需要将正则表达式的特殊字符进行转义,如点号"."需要写成"\\."。同时,使用exactMatch函数可以确保整个字符串与正则表达式完全匹配。
相关问题
qt实现0.100~90.000的正则表达式
可以使用Qt中的QRegExp类来实现这个正则表达式,具体的正则表达式为:`^([0-9]|[1-8][0-9])(\.[0-9]{1,3})?$|^90(\.0{1,3})?$`
代码示例:
```cpp
QString str = "89.123";
QRegExp regExp("^([0-9]|[1-8][0-9])(\\.[0-9]{1,3})?$|^90(\\.0{1,3})?$");
if(regExp.exactMatch(str))
{
// 匹配成功
}
else
{
// 匹配失败
}
```
其中,`^([0-9]|[1-8][0-9])(\.[0-9]{1,3})?$`表示匹配0~89.999的数字,`^90(\.0{1,3})?$`表示匹配90.000这个数字。
qt实现1.000~90.000的正则表达式
使用正则表达式匹配1.000~90.000可以使用以下正则表达式:
```
^([1-8]?[0-9](\.[0-9]{3})?|90(\.000)?)$
```
解释如下:
- `^` 匹配字符串的开头
- `([1-8]?[0-9](\.[0-9]{3})?|90(\.000)?)` 匹配1.000~89.999和90.000两种情况
- `[1-8]?[0-9]` 匹配1~89或0~9
- `(\.[0-9]{3})?` 匹配小数点后三位数字,可选
- `|` 或者
- `90(\.000)?` 匹配90或90.000
- `$` 匹配字符串的结尾
在Qt中使用该正则表达式可以使用QRegExp类,示例如下:
```cpp
QString str = "89.999";
QRegExp rx("^([1-8]?[0-9](\\.[0-9]{3})?|90(\\.000)?)$");
if (rx.exactMatch(str)) {
qDebug() << "Match!";
} else {
qDebug() << "Not match!";
}
```
阅读全文