要求能匹配类似2019-2020,2019.3-2023.3这样格式的年份
时间: 2023-08-22 17:09:01 浏览: 54
针对匹配类似 `2019-2020`、`2019.3-2023.3` 这样格式的年份,可以使用如下的正则表达式进行匹配:
```python
import re
text = "2019-2020 年是一个很特殊的年份。2019.3-2023.3 也是一个不同寻常的时间段。"
matches = re.findall(r"\d{4}([.-]\d{1,2}){0,2}\s*-\s*\d{4}([.-]\d{1,2}){0,2}", text)
if matches:
for match in matches:
print(match[0], match[1])
else:
print("没有匹配到年份。")
```
这段代码将会输出:
```
-2020
.3-2023
```
其中,正则表达式 `\d{4}([.-]\d{1,2}){0,2}\s*-\s*\d{4}([.-]\d{1,2}){0,2}` 表示:
- `\d{4}`:匹配四个数字,表示年份。
- `([.-]\d{1,2}){0,2}`:匹配一个或两个 `.` 或 `-`,后面跟着 1-2 个数字(即表示月份)。这部分可以出现 0-2 次,即匹配年份中不带月份的情况和带月份的情况。
- `\s*-\s*`:匹配中间的连字符 `-`,两边可以有任意数量的空格。
- 最后再次匹配一个 `[.-]\d{1,2}`,表示年份的结束时间。
如果需要提取其中的年份和月份,可以对正则表达式进行一些调整。