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

如何从给定报错字符串中提取<strong>标签包裹的高亮内容

提取标签包裹内容的可行实现

针对你给出的报错字符串场景,直接用正则非贪婪匹配是最稳妥的方案,比手动split容错率高,不会被标签前后的其他字符干扰:

  • Python 实现(无额外依赖):
import re

error_log = "[Error] Failed to process site: https://xxxxxxxxx/teams/<strong>xxxxxx</strong>. The remote server returned an error: (404) Not Found."
result = re.search(r"<strong>(.*?)</strong>", error_log)
if result:
    target_content = result.group(1)
    # 此处target_content就是<strong>标签包裹的高亮内容

之前用split操作失败的常见原因是截取逻辑不完整:仅按<strong>分割只能拿到标签后的第一段文本,还需要二次按</strong>分割取首段才能拿到目标内容,很容易因为字符串里存在其他尖括号内容、标签带格式属性导致截取错位。正则的(.*?)非贪婪匹配规则会自动锁定两个标签之间的最短匹配范围,不会把后续的报错文本带入结果。

  • 兼容扩展:如果后续日志里的<strong>标签可能带class、style等属性(比如<strong class="err-highlight">),只需要把正则规则调整为<strong[^>]*>(.*?)</strong>即可适配,不需要修改后续取值逻辑。
  • 如果日志里存在多组<strong>标签,把re.search替换为re.findall即可一次性提取所有高亮内容,返回结果为按顺序排列的内容列表。
  • JavaScript 环境实现逻辑一致:
const errorLog = "[Error] Failed to process site: https://xxxxxxxxx/teams/<strong>xxxxxx</strong>. The remote server returned an error: (404) Not Found."
const reg = /<strong>(.*?)<\/strong>/
const targetContent = errorLog.match(reg)?.[1]

不要用解析完整HTML的库处理这类零散日志字符串,太重且没必要,正则完全可以覆盖这类固定格式的日志提取场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 16:27:38