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

Python正则:从目标字符串提取指定子文本与标签内容

解决方案

可以通过正则分组捕获一次性提取标签和目标文本,也可以基于你已有的代码分步拆分,以下是具体实现:

方法一:正则分组捕获

直接匹配字符串结构,把标签和目标文本分别捕获到分组中:

import re

x = "[error][test][new] Test results don't match for id 1911"
pattern = r'^(\[.*?\])\s+(.*?)\s+\d+$'
match_result = re.match(pattern, x)

if match_result:
    tags = match_result.group(1)
    target_text = match_result.group(2)
    print("标签:", tags)  # 输出: [error][test][new]
    print("目标文本:", target_text)  # 输出: Test results don't match for id

正则说明:

  • ^(\[.*?\]):捕获开头连续的标签组,\[匹配左方括号,.*?非贪婪匹配到最后一个右方括号
  • \s+:匹配标签与文本之间的空格
  • (.*?):捕获目标文本,非贪婪匹配到末尾数字前的空格
  • \s+\d+$:匹配末尾的空格和数字,确保只提取数字前的有效文本

方法二:基于现有代码分步拆分

利用你已经提取的前缀内容,按第一个空格拆分分离标签和文本:

import re

x = "[error][test][new] Test results don't match for id 1911"
prefix = re.split(r'\d+', x)[0].strip()
# 按第一个空格拆分,确保标签组被完整提取
tags, target_text = prefix.split(' ', 1)

print("标签:", tags)
print("目标文本:", target_text)

该方法适用于标签内部无空格的场景,适配当前字符串结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 23:44:54