You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

正则表达式匹配异常求助:无法提取目标内容如何解决?

提取字符串中的"Microsoft Edge"解决方案

你的正则表达式r"- .*?"使用了非贪婪匹配(.*?),它会尽可能早地停止匹配。因为没有设置结束锚点或后续匹配规则,所以每次只捕获到"- "部分,导致结果为['- ', '- ']。

方案1:调整正则表达式捕获最后一段内容

使用锚定到字符串末尾的正则表达式,匹配最后一个"- "之后的所有内容:

import re

content = 'Unknown - abc - Microsoft Edge'
p = re.compile(r"- (.*)$")
result = p.findall(content)[0]  # 获取唯一的匹配结果
print(result)  # 输出: Microsoft Edge

这个模式r"- (.*)$"的作用:

  • - 匹配最后一个连字符和空格
  • (.*)捕获从该位置到字符串结束的所有字符
  • $表示字符串结束位置

方案2:分割字符串(更简单的方法)

如果字符串始终以" - "作为分隔符,直接分割后取最后一个元素更直观:

content = 'Unknown - abc - Microsoft Edge'
result = content.split(" - ")[-1]
print(result)  # 输出: Microsoft Edge

内容的提问来源于stack exchange,提问作者Danhui Xu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 10:03:22