现有字符串: string ="根据闰年的定义,2023年不是闰年,但2022年是闰年。"← 根据题目要求用正则表达式匹配年份,并对比不同方法的区别。 #用 match ()方法匹配" XX (数字)年"的模式,并打印出匹配结果运行结果: None #用 search ()方法匹配" XX (数字)年"的模式,并打印出匹配结果←运行结果:< re . Match object ; span =(8,13), match ='2023年 V #用findall0方法匹配" Xx (数字)年"的模式,并打印出匹配结果运行结果:['2023年','2022年']
时间: 2024-03-11 16:51:24 浏览: 42
Android常用字符串匹配正则
好的,下面是代码实现:
```python
import re
string = "根据闰年的定义,2023年不是闰年,但2022年是闰年。"
# 使用 match() 方法匹配 "XX(数字)年" 的模式
match_result = re.match(r"\d{4}年", string)
print(match_result)
# 使用 search() 方法匹配 "XX(数字)年" 的模式
search_result = re.search(r"\d{4}年", string)
print(search_result)
# 使用 findall() 方法匹配 "XX(数字)年" 的模式
findall_result = re.findall(r"\d{4}年", string)
print(findall_result)
```
输出结果为:
```
None
<re.Match object; span=(8, 13), match='2023年'>
['2023年', '2022年']
```
可以看出,match() 方法匹配不到符合模式的字符串,因为 "2023年" 不在字符串的开头;search() 方法可以匹配到符合模式的字符串,但只匹配到了第一个符合条件的字符串;findall() 方法可以匹配到所有符合模式的字符串,返回一个列表。
阅读全文