python 正在表达式获取<li>共 <span class="color">6,753</span> 条记录</li>中的6
时间: 2023-11-16 16:34:53 浏览: 38
可以使用正则表达式来提取这个字符串中的数字6。具体来说,可以先匹配`<li>`标签和`</li>`标签之间的内容,然后再从中提取数字部分。示例如下:
```python
import re
s = '<li>共 <span class="color">6,753</span> 条记录</li>'
match = re.search(r'<li>.*?([\d,]+).*?</li>', s)
if match:
num_str = match.group(1)
num = int(num_str.replace(',', ''))
print(num) # 输出6,753对应的数字6,753
else:
print('未找到匹配的字符串')
```
相关问题
python 正在表达式获取<li>共 <span class="color">6,753</span> 条记录</li>中的6,753
同样可以使用正则表达式来提取这个字符串中的数字`6,753`。具体来说,可以先匹配`<li>`标签和`</li>`标签之间的内容,然后再从中提取数字部分。示例如下:
```python
import re
s = '<li>共 <span class="color">6,753</span> 条记录</li>'
match = re.search(r'<li>.*?<span.*?>([\d,]+)</span>.*?</li>', s)
if match:
num_str = match.group(1)
num = int(num_str.replace(',', ''))
print(num) # 输出6,753
else:
print('未找到匹配的字符串')
```
解释一下正则表达式的含义:
- `<li>`:匹配`<li>`标签;
- `.*?`:匹配任意字符,非贪婪模式,即尽可能少地匹配;
- `<span.*?>`:匹配`<span>`标签,其中`.*?`表示匹配`<span>`标签中的任意属性;
- `([\d,]+)`:匹配数字和逗号,其中`[\d,]`表示数字和逗号的字符集,`+`表示匹配一个或多个字符,并将其保存在分组中;
- `</span>`:匹配`</span>`标签;
- `.*?`:同上;
- `</li>`:匹配`</li>`标签。
div class="qml-stem"><p style=""><span style="font-family: 宋体;">读一读,猜一猜。</span></p><p style=""><span style="font-family: 宋体;">什么鸟跑得快,不爱树林爱沙漠?(<span style="font-family: 'Times New Roman'" qml-space-size="2"> </span>)</span></p><div class=" qml-og"><table class="qml-og" style="width:100%"><tr><td>A. <span class="qml-op"><span style="font-family: 宋体;">山椒鸟</span></span></td><td>B. <span class="qml-op"><span style="font-family: 宋体;">鸵鸟</span></span></td><td colspan="1">C. <span class="qml-op"><span style="font-family: 宋体;">犀鸟</span></span></td></tr></table></div></div> 这段html中使用正则判断是否有选项A
可以使用以下正则表达式进行匹配:
```python
import re
html = '<div class="qml-stem"><p style=""><span style="font-family: 宋体;">读一读,猜一猜。</span></p><p style=""><span style="font-family: 宋体;">什么鸟跑得快,不爱树林爱沙漠?(<span style="font-family: \'Times New Roman\'" qml-space-size="2"> </span>)</span></p><div class=" qml-og"><table class="qml-og" style="width:100%"><tr><td>A. <span class="qml-op"><span style="font-family: 宋体;">山椒鸟</span></span></td><td>B. <span class="qml-op"><span style="font-family: 宋体;">鸵鸟</span></span></td><td colspan="1">C. <span class="qml-op"><span style="font-family: 宋体;">犀鸟</span></span></td></tr></table></div></div>'
match = re.search(r'<td>A\.(.*?)</td>', html)
if match:
option_a = match.group(1)
print(option_a) # 输出:山椒鸟
else:
print('没有选项A')
```
该正则表达式的含义是匹配 `<td>` 标签中以大写字母 A 开头,以 `</td>` 结尾的内容(即选项 A)。使用 `re.search()` 函数可以在字符串中搜索第一个匹配项。如果找到了匹配项,则使用 `match.group(1)` 获取第一个匹配的子串,即选项 A 的内容。如果没有找到匹配项,则说明没有选项 A。