使用re匹配 <p class="game_time">比赛时间2024-07-27 18:00</p> <p class="odds_hd_bf"><strong>1:0</strong></p>中的2024-07-27 18:00
时间: 2024-12-25 12:24:15 浏览: 8
要使用正则表达式(`re`模块)从给定的HTML片段中提取"2024-07-27 18:00"这个日期时间字符串,你可以创建一个模式来匹配这部分内容,然后使用`re.search()`或`re.findall()`等函数来查找。
首先,你需要导入`re`模块:
```python
import re
```
接下来,定义一个正则表达式模式,该模式匹配日期时间字符串。在这种情况下,我们可以假设日期时间字符串总是包含两个连续的短横线("-")并且可能被一些文本包围。这里我们使用非贪婪匹配符`?`确保尽可能少地捕获额外的内容:
```python
pattern = r'<p class="game_time">(.*?)<span>(\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2})</span>'
```
这个模式的意思是:
- `<(.*?)>` 匹配开始的`<p class="game_time">`标签内的任意字符,直到找到下一部分。
- `\d{4}-\d{2}-\d{2}` 匹配四位数的年份、两位数的月份和两位数的日。
- `\s+` 匹配一个或多个空白字符(包括空格),后面跟着小时和分钟。
- `(\d{2}:\d{2})` 匹配小时和分钟,分别用两位数字表示。
现在,你可以使用这个模式来搜索你的HTML片段:
```python
html_content = """
<p class="game_time">比赛时间2024-07-27 18:00</p>
<p class="odds_hd_bf"><strong>1:0</strong></p>
"""
match = re.search(pattern, html_content)
if match:
date_time = match.group(2) # 提取第二个组,即日期时间
print(date_time)
else:
print("没有找到匹配")
```
如果找到匹配,这段代码会输出 "2024-07-27 18:00";如果没有找到,则输出 "没有找到匹配"。
阅读全文