返回
正则表达式教程:判断考卷分数
正则表达式
2024-02-28 15:50:44
## 一、正则解释
正则表达式:**^150$|^(?:\d|[1-9]\d|1[0-4]\d)(?:\.5)?$**
* **^** :字符串开始。
* **150$** :字符串以 150 结尾。
* **(?:\d|[1-9]\d|1[0-4]\d)** :匹配一个数字,或一个大于 0 且小于 150 的整数,或一个大于等于 10 且小于等于 140 的整数。
* **(?:\.5)?** :匹配一个小数点后跟 5,该部分可有可无。
* **$** :字符串结束。
## 二、使用场景
该正则表达式可用于验证考卷分数是否符合以下条件:
* 大于等于 0
* 小于等于 150
* 支持小数位出现 5
## 三、代码示例
### JavaScript
```javascript
const regex = /^150$|^(?:\d|[1-9]\d|1[0-4]\d)(?:\.5)?$/;
console.log(regex.test("150")); // true
console.log(regex.test("100.5")); // true
console.log(regex.test("200")); // false
console.log(regex.test("-5")); // false
console.log(regex.test("145.7")); // false
```
### Java
```java
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String regex = "^150$|^(?:\\d|[1-9]\\d|1[0-4]\\d)(?:\\.5)?$";
Pattern pattern = Pattern.compile(regex);
System.out.println(pattern.matcher("150").matches()); // true
System.out.println(pattern.matcher("100.5").matches()); // true
System.out.println(pattern.matcher("200").matches()); // false
System.out.println(pattern.matcher("-5").matches()); // false
System.out.println(pattern.matcher("145.7").matches()); // false
}
}
```
### PHP
```php
<?php
$regex = '/^150$|^(?:\d|[1-9]\d|1[0-4]\d)(?:\.5)?$/';
echo preg_match($regex, "150") . "\n"; // 1
echo preg_match($regex, "100.5") . "\n"; // 1
echo preg_match($regex, "200") . "\n"; // 0
echo preg_match($regex, "-5") . "\n"; // 0
echo preg_match($regex, "145.7") . "\n"; // 0
?>
```
### Python
```python
import re
regex = r"^150$|^(?:\d|[1-9]\d|1[0-4]\d)(?:\.5)?$"
print(bool(re.match(regex, "150"))) # True
print(bool(re.match(regex, "100.5"))) # True
print(bool(re.match(regex, "200"))) # False
print(bool(re.match(regex, "-5"))) # False
print(bool(re.match(regex, "145.7"))) # False
```